|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目是这样的:
0. 编写一个程序,接收用户的输入,并将前 9 个字符以正方形矩阵(3 * 3)的方式输出
小甲鱼的代码是这样的:
- #include <stdio.h>
- int main()
- {
- int matrix[3][3] = {0};
- int i, j;
- for (i = 0; i < 3; i++)
- {
- for (j = 0; j < 3; j++)
- {
- matrix[i][j] = getchar();
- }
- }
- for (i = 0; i < 3; i++)
- {
- for (j = 0; j < 3; j++)
- {
- printf("%c ", matrix[i][j]);
- }
- printf("\n");
- }
- return 0;
- }
复制代码
当我看见这代码时,我觉得太没意思了 ,根本就没有用这节课的内容,然后我就写出了这个玩意儿 :
- #include <stdio.h>
- int main()
- {
- int i,j;
- char matrix[9] = {0};//因为使用fgets函数
-
- fgets(matrix,10,stdin);
-
- int (*p)[3] = (int (*)[3])&matrix;//强制转换成二维数组
-
- for (i = 0;i < 3;i++)
- {
- for (j = 0;j < 3;j++)
- {
- printf("%c ",p[i][j]);
- }
- putchar('\n');
- }
-
- return 0;
- }
复制代码
刚写出来的时候觉得没问题 ,但是运行起来后就出bug了 ,我输入0123456789,就只会打印0 4 8 ,哪里出问题了呢?求大佬解答
- #include <stdio.h>
- int main()
- {
- int i,j;
- //char matrix[9] = {0};//因为使用fgets函数
- char matrix[10] = {0};//因为使用fgets函数
-
- fgets(matrix,10,stdin);
-
- //int (*p)[3] = (int (*)[3])&matrix;//强制转换成二维数组
- char (*p)[3] = (char (*)[3])&matrix;//强制转换成二维数组
-
- for (i = 0;i < 3;i++)
- {
- for (j = 0;j < 3;j++)
- {
- printf("%c ",p[i][j]);
- }
- putchar('\n');
- }
-
- return 0;
- }
复制代码
|
|