【for的小trick:两个及以上条件要添加if语句】(对角线加和)
试了一下午,原来是,果然是,错在这里了
include <stdio.h>
int main()
{
int m[3][3];
int sum=0;
int i,j;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
scanf("%d",&m[i][j]);
}
} //这是数组的读取,建议全文背诵呢
for (i=0;i<3;i++){
sum+=m[i][i];
}
for (i=0;i<3;i++){
if(i!=1) //在for的判断条件中,如果你写(i<3||i!=1)是不成立的
sum+=m[i][2-i];
}
printf("%d",sum);
return 0;
}
不过while是可以的。
【求成绩的平均数】
首先看好每个数据的来源和计算方式
其次,其次的槽点太多了啊
double m[3][4]={
{83.00,90.00,86.00,93.00},
{95.00,78.00,80.00,90.00},
{64.00,82.00,74.00,88.00} //这是给的初始分数
};
int i,j;
double sum=0,ssum=0,sssum=0;
double n[4][5];
for(i=0;i<3;i++){
for(j=0;j<4;j++){
n[i][j]=m[i][j];
}
}
**for(i=0;i<3;i++){
for(j=0;j<4;j++){
scanf("%lf",m[3][4]);
}
} **
for(i=0;i<3;i++){ //要在前3行的后面都加上一个数 3
sum=0;
for(j=0;j<4;j++){ //是每行前4个数的总和 4
sum+=m[i][j];
}
n[i][4]=sum/4; //是每行第五个数
}
for(j=0;j<4;j++){ //要在4列后面都加上一个数 4
ssum=0;
for(i=0;i<3;i++){ //是每列前3个数的总和 3
ssum+=m[i][j];
}
n[3][j]=ssum/3; //是每列第四个数
}
for(j=0;j<4;j++){
sssum+=n[3][j];
}
n[3][4]=sssum/4;
for(i=0;i<4;i++){
for(j=0;j<5;j++){
printf("%.2f ",n[i][j]);
}
printf("\n");
}
这个是正确的,但当我不给它原始数据而是自己输入的时候,结果会很离谱??但是读数包没问题的啊,烦死了!!!我插到星号里面了,样本都留着,
再说。
浙公网安备 33010602011771号