读书人

看一上这两个代码小弟我觉得没啥区别

发布时间: 2012-11-10 10:48:51 作者: rapoo

看一下这两个代码,我觉得没啥区别啊,结果却不一样。。。
[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时,条件为真
[解决办法]

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++)        {            printf("%d ",a[i][j]);            if ((j+1)%5==0) //只有这里改了                printf("\n");        }    }    printf("\n");    // getchar();    return 0;   } 

读书人网 >C语言

热点推荐