为了账号安全,请及时绑定邮箱和手机立即绑定

求问,输出的这是个啥?

http://img1.sycdn.imooc.com//56e3d4920001893805780413.jpg

如图 ,为啥printf出来的不是我赋予值的数组,这是个啥?

另外,不加"%d”就输出不出来显示空白?


正在回答

2 回答

#include <stdio.h>
int main()
{
    //使用第一种方式初始化方式声明并初始化二维数组arr1
    int arr1[2][2]={{10,20},{30,40}};
    //使用第二种方式初始化方式声明并初始化二维数组arr2
    int arr2[2][2];
    arr2[0][0]=10;
    arr2[0][1]=20;
    arr2[1][0]=30;
    arr2[1][1]=40;
    int i,j;
    for (i=0;i<2;i++)
        for(j=0;j<2;j++)
        {
            printf("%d\n",arr1[i][j]); //输出数组arr1的值
            printd("%d\n",arr2[i][j]); //输出数组arr2的值
        }
    return 0;    
}

输出数组要遍历数组内的值输出才行

3 回复 有任何疑惑可以回复我~
#1

慕九州1701935

第17行printf写错了 可以这么写:printf("arr1[i][j]=%d\n",i,j,arr1[i][j]);
2016-05-06 回复 有任何疑惑可以回复我~
#2

qq_曦光__0

我想知道你们用的编译器是哪种的?
2016-05-10 回复 有任何疑惑可以回复我~
#3

果爱上了然 回复 qq_曦光__0

亲,这和编译器有关吗? 明明是输出形式不对啊
2016-08-11 回复 有任何疑惑可以回复我~
#include <stdio.h>
int main()
{
    //使用第一种方式初始化方式声明并初始化二维数组arr1
    int arr1[2][2]={{10,20},{30,40}};
    //使用第二种方式初始化方式声明并初始化二维数组arr2
    int arr2[2][2];
    arr2[0][0]=10;
    arr2[0][1]=20;
    arr2[1][0]=30;
    arr2[1][1]=40;
    printf("%d\n",arr1[1][1]);
    // printf("%d\n",arr2[1][1]);
    return 0;    
}

数组的输出不同于像整形这样的数,你需要指定具体的地址


0 回复 有任何疑惑可以回复我~
#1

只为伊人心独醉 回复 Ciry 提问者

想要输出整个数组的值,需要遍历,你这格式就不对,%d对应 的是数不是数组,你可以写两个for循环语句,进行遍历,http://www.imooc.com/code/5598,
2016-03-21 回复 有任何疑惑可以回复我~
#2

Rorai 回复 只为伊人心独醉

懂了。soga
2016-05-28 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求问,输出的这是个啥?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信