急求c语言详解,关于for语句的嵌套
1.main()
{ int a[3][3]={1,2,3,4,5,6,7,8,9}, m, k, t;
for (m=0;m<3;m++)
for (k=0;k<=m;k++)
if ((m+k)%2)
t=a[m][k], a[m][k]=a[k][m], a[k][m]=t;
for (m=0;m<3;m++)
{for (k=0;k<3;k++)
printf("%d",a[m][k]);
printf("\n");
}
}第一行和第二行分别输出的数是多少?详解!
2.
main()
{ int a[4][4]={{1,2,-3,-4},{0,-12,-13,14} ,{-21,23,0,-24},{-31,32,-33,0}};
int i,j,s=0;
for(i=0;i<4;i++)
{ for(j=0;j<4;j++)
{ if(a[i][j]<0) continue;
if(a[i][j]==0) break;
s+=a[i][j];
}
}
printf("%d\n",s);
}
执行后输出结果是多少?详解!
补充:main()
{ int a=4,b=3,c=5,t=0;
if(a<b)t=a;a=b;b=t;
if(a<c)t=a;a=c;c=t;
printf("%d %d %d\n",a,b,c);
}
执行后输出结果为
追问:能不能详细点啊?我有答案就是不知道怎么做的
答案:1.最后显示
143
258
769
2.最后显示
58
补充的
5 0 3
其他:你的代码写的真乱,看着好累,有些分号都没有
main()
{ int a[3][3]={1,2,3,4,5,6,7,8,9}, m, k, t; //定义一个二维数组a[3][3],声明了3个变量m,k,t
for (m=0;m<3;m++) //第一个for循环
for (k=0;k<=m;k++) //第二个for循环镶嵌在第一个中
if ((m+k)%2) //求(m+k)除以2的余数是0还是1,其实就是看是不是一个奇数,1是true执行下面一行代码,0是false,跳过下面一行,继续上面的for循环
t=a[m][k], a[m][k]=a[k][m], a[k][m]=t; //这里和上面有关,如果上面是true则交换a[m][k]和a[k][m]的值
for (m=0;m<3;m++) // 这是第三个for循环
{for (k=0;k<3;k++) //这是第四个for循环,镶嵌第三个里面
printf("%d",a[m][k]); //打印 a[m][k]的值
printf("\n"); //打第四个for循环没完成一次打一个回车
}
总的来说,第一个for循环和第二个for循环一起工作,
比如第一轮是m=0是,k分别是0,然后比较0+0是不是奇数,不是的话不管,是的话交换a[0][0]和a[0][0]的值,第一个你可能不懂,看第二就明白了
第二轮是m=1,k分别是0和1,先看0的情况,1+0=1,奇数,所以交换a[1][0]和a[0][1]的值
第三轮是m=2,k分别为0,1,2......
**************************这样,2个for循环就结束了,改换的数字都被换了
第三第四轮for循环没什么特殊意义,只是为了把从a[0][0]到a[2][2]的所有数字答应出来而已,而且每3个一行
上一个:我用Dev-C++编的程序总被360安全卫士拦截,怎么办啊?
下一个:(C语言)有四个警告warning C4033: 'main' must return a value,不能出运行结果,请帮忙看下