#include<stdio.h>
int main()
{ int i,j,a[10];
a[0]=1;
for(i=0;i<5;i++)
for(j=i;j<5;j++)
a[j]=a[i]+1;
for(i=1;i<5;i++)
printf("%4d",a[i]);
return 0;
}
解析见注释
int main()
{
int i, j, a[10];
a[0] = 1;
for (i = 0; i < 5; i++)
for (j = i; j < 5; j++)
{
//i=0,j从0开始,第一位a[0]=a[0]+1=1+1=2,后续4位都是2+1=3
//i=1,j从1开始,a[1]+1=4,后续3位每一位都是a[1]+1=5
//i=2,j从2开始,a[2]+1=6,后续2位每一位都是a[2]+1=7
//i=3,j从3开始,a[3]+1=8,后续1位每一位都是a[3]+1=9
//i=4,j从4开始,后续1位是a[4]+1=10
//2 4 6 8 10
a[j] = a[i] + 1;
}
for (i = 1; i < 5; i++)
printf("%4d", a[i]);
return 0;
}
你可以在VS编译器下按F10进入调试,每次按下F10程序都会走一步,在右侧的参数观察窗口逐步查看数据的变化
如果对你有帮助,还请点个采纳,万分感谢!
就是遍历改变数组,打印出过程就知道了
如有帮助请采纳谢谢
逐句注释理解如下:
//定义头文件
#include<stdio.h>
//主函数
int main()
{
//定义i,j用于循环遍历
int i,j,a[10];//定义a[10]数组用于存储
a[0]=1;//将首地址元素赋值为1
//i 外层循环
for(i=0;i<5;i++)
for(j=i;j<5;j++)//j 内层循环
a[j]=a[i]+1;//比如i=0时 a[j] = a[0] + 1 = 1 + 1 = 2 因为j=i j=0 所以a[0] = 2 a[1]、a[2]、a[3]、a[4]都为3
//循环输出变化后的数组元素
for(i=1;i<5;i++)
printf("%4d",a[i]);//设置域宽为4 输出a[i]
return 0;//返回0 代表程序结束
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!以上仅供参考,如有任何疑问,可以评论回复,看到即回。
希望对题主有所帮助!可以的话,点个采纳!