循环体使用错误

#include<stdio.h>
int main(int argc, const char *argv[])
{
int a[10][10]={};
int i,j;
a[0][0]=1;
a[1][0]=1;
a[2][0]=1;
a[3][0]=1;
a[4][0]=1;
a[5][0]=1;
a[6][0]=1;
a[7][0]=1;
a[8][0]=1;
a[9][0]=1; 
for(i=0;i<10;i++)\\行的输入
{
for(j=0;j<=i;j++)列的输入
{
a[i+1][j+1]=a[i][j]+a[i][j+1];

//在第一次行的循环完成之后,就要完成输出,底下的两个for循环是为了完成二维平面的打印,但应该是行的一次循环完成,所以此时应该跳出行的循环。

for(i=0;i<10;i++)//其中这的次数是表示需要打印的行里的元素,如果需要打印10行,应该是0~9。
{
for(j=0;j<=i;j++)
{
printf("%d\n",a[i][j]);
}
}
}
return 0;

}


1.for(i=0;i<10;i++)\\行的输入
{

1.1for(j=0;j<=i;j++)列的输入//此段程序执行的过程:当进入1时,对i初始化为0;进入1.1,对j初始化为0;a[1]                                                                    [1]=a[0][0]+a[0][1],进入1.21,打印a[0][0],再次执行1.21,j=1,不满足条件,回                                                               到1.2循环,i=1,输出a[1][0],1.21继续执行,输出a[1][1],再次跳到1.2,可以发现                                                                 程序在i=10以前,一直在1.2内部执行,而1.1计算的部分没有执行,导致输出的不是

                                                              实际计算的值。

{                                          

a[i+1][j+1]=a[i][j]+a[i][j+1];

1.2for(i=0;i<10;i++)
{
1.21for(j=0;j<=i;j++)
{

printf("%d\n",a[i][j]);

}

}

扫描二维码关注公众号,回复: 1643297 查看本文章

这的换行也不对,这样表示,每输出一个元素都会换行。

应该改成:1.2for(i=0;i<10;i++)
{
1.21for(j=0;j<=i;j++)
{

printf("%d",a[i][j]);      

}

          printf("\n");//表示当j=某一个数的循环完成之后,也就是这一列的输入完成之后,在跳入到下一行之前进行换行。

}



猜你喜欢

转载自blog.csdn.net/chengchaonan/article/details/79501943
今日推荐