看一下这两个代码,我觉得没啥区别啊,结果却不一样。。。
[code=C/C++][/code]#include <stdio.h>
int main()
{ int a[5][5]={ {3,3,3,3,3},
{3,3,3,3,3},
{3,3,3,3,3},
{3,3,3,3,3},
{3,3,3,3,3} };
int n,i,j;
for (i=0;i<5;i++)
{ for (n=0;n<=i;n++)
a[i][n]=0; }
for (i=0;i<5;i++)
for (j=0;j<5;j++)
{if (j%5==0)
printf("\n");
printf("%d ",a[i][j]);}
printf("\n");
// getchar();
return 0;
}
[code=C/C++][/code]#include <stdio.h>
int main()
{ int a[5][5]={ {3,3,3,3,3},
{3,3,3,3,3},
{3,3,3,3,3},
{3,3,3,3,3},
{3,3,3,3,3} };
int n,i,j;
for (i=0;i<5;i++)
{ for (n=0;n<=i;n++)
a[i][n]=0; }
for (i=0;i<5;i++)
for (j=0;j<5;j++)
{if ((j+1)%5==0) //只有这里改了
printf("\n");
printf("%d ",a[i][j]);}
printf("\n");
// getchar();
return 0;
}
[解决办法]
额。。。。以我愚见,这个if (j%5==0)是为了没输出5个数后就换行,而这个if ((j+1)%5==0)是没四个数就换一次,两个程序应该都是输出0的,因为没有运行程序,只是看代码而已,有错请指出
[解决办法]
if (j%5==0) j=5时,条件为真
if ((j+1)%5==0) j=4时,条件为真
[解决办法]
#include <stdio.h>int main(){ int a[5][5]={ {3,3,3,3,3}, {3,3,3,3,3}, {3,3,3,3,3}, {3,3,3,3,3}, {3,3,3,3,3} }; int n,i,j; for (i=0;i<5;i++) { for (n=0;n<=i;n++) a[i][n]=0; } for (i=0;i<5;i++) { for (j=0;j<5;j++) { printf("%d ",a[i][j]); if ((j+1)%5==0) //只有这里改了 printf("\n"); } } printf("\n"); // getchar(); return 0; }