c语言求答案加详细解释

如题所述

#include <stdio.h>



main()
{

        int a[3][4];

        int i,j;

        for(i=0;i<3;i++)
                for(j=0;j<4;j++)
                        scanf("%d",&a[i][j]);

        printf("the result is :\n");

        for(i=0;i<3;i++)
                for(j=0;j<4;j++)
                        printf("%5d",a[i][j]);

        printf("\n");
}


解释:两个for循坏分别控制行和列,一共有3行4列,所以外循环i<3,内循环j<4(0、1、2、3、4)循环4次,使用scanf函数的时候要输入变量地址,&是取地址符,表示这个变量的地址,使用printf时只需要输入变量名。至于为什么一个输入变量地址、一个输入变量名,这是库函数规定的,函数作者规定这样就是这样,无解。


还有什么问题可以追问

追问

为什么printf (“%5d”)

追答

原题是这样,%5d不是我写的,普通%d表示输出一个十进制整数,多了个“5”,%5d表示输出十进制数,而且输出的宽度是5位,如果输出数字实际长度超过5位,也只能显示5位,如果输出长度小于5位,则补空格

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-16
第2个回答  2015-12-16
1、i<3;i++
这是输入时二维数组的三行循环控制
2、j<4;j++
这是二维数组的每行四列(个)元素循环控制
3、&a[i][j]
这是输入的每个元素的具体位置(地址),scanf函数的参数要求
4、i<3
同上,这是输出时二维数组的三行循环控制
5、j<4
同上,这是输出时每行四列(个)元素循环控制
6、a[i][j]
这是输入的每个元素的值(数据),printf函数的参数要求本回答被提问者采纳
相似回答