●●★☆帮帮忙☆★●●
#include<stdio.h>void main()
{
int a[4][4],i,j,sum1=0,sum2=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
printf("请为a[%d][%d]赋值: ",i,j);
scanf("%d",&a[i][j]);
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if(i=j)
sum1=sum1+a[i][j];
else continue;
}
for(i=0;i<4;i++)
for(j=3;j>=0;j++)
{
if(i+j==3)
sum2=sum2+a[i][j];
else continue;
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
printf("sum1=%2d,sum2=%2d\n",sum1,sum2);
}
我不能检查出错误,但事实上是错了
呵呵
----------------解决方案--------------------------------------------------------
没说是做什么的程序
----------------解决方案--------------------------------------------------------
自己应该先调试下,用的什么编译器?出的什么错?
----------------解决方案--------------------------------------------------------
for(i=0;i<4;i++)
for(j=3;j>=0;j++)
{
if(i+j==3)
sum2=sum2+a[i][j];
else continue;
}
这个循环中j++应为j--。
for(i=0;i<4;i++)
for(j=0;j<4;j++)
printf("sum1=%2d,sum2=%2d\n",sum1,sum2);
这里明显不应用循环。
正确的代码:
#include<stdio.h>
void main()
{
int a[4][4],i,j,sum1=0,sum2=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
printf("请为a[%d][%d]赋值: ",i,j);
scanf("%d",&a[i][j]);
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if(i=j)
sum1=sum1+a[i][j];
else continue;
}
for(i=0;i<4;i++)
for(j=3;j>=0;j--)
{
if(i+j==3)
sum2=sum2+a[i][j];
else continue;
}
printf("sum1=%2d,sum2=%2d\n",sum1,sum2);
}
void main()
{
int a[4][4],i,j,sum1=0,sum2=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
printf("请为a[%d][%d]赋值: ",i,j);
scanf("%d",&a[i][j]);
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if(i=j)
sum1=sum1+a[i][j];
else continue;
}
for(i=0;i<4;i++)
for(j=3;j>=0;j--)
{
if(i+j==3)
sum2=sum2+a[i][j];
else continue;
}
printf("sum1=%2d,sum2=%2d\n",sum1,sum2);
}
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
int a[4][4],i,j,sum1=0,sum2=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
printf("请为a[%d][%d]赋值: ",i,j);
scanf("%d",&a[i][j]);
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if(i=j) //else永远不会被执行.因该是==
sum1=sum1+a[i][j];
else continue;
}
for(i=0;i<4;i++)
for(j=3;j>=0;j++) //循环不会结束
{
if(i+j==3)
sum2=sum2+a[i][j];
else continue;
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
printf("sum1=%2d,sum2=%2d\n",sum1,sum2);
}
----------------解决方案--------------------------------------------------------
回复 2# 的帖子
计算4×4矩阵的对焦线上数据之和 ----------------解决方案--------------------------------------------------------
if(i=j)
sum1=sum1+a[i][j];
一抬眼发现一Bug……大呼:好大的虫啊……这个可以排名第二,排名第一的是int i=2n+1;……………………
----------------解决方案--------------------------------------------------------