问题描述
- 数组问题求总分,又不对了,怎么回事
-
#include
int scor[10][3];
void input()
{
for(int i=0;i<10;i++)
{
printf("chinese maths engishn");
scanf("%d %d %d",&scor[i][0],&scor[i][1],&scor[i][2]);
}
}
void main()
{
input();
int sum[3]={0,0,0};
for(int i=0;i<10;i++)
{
sum[0]+=scor[i][0];
sum[1]+=scor[i][1];
sum[2]+=scor[i][2];
}
printf("avg %d,%d,%d", sum[0]/10,sum[1]/10,sum[2]/10);
printf("zongfen %d", (sum[0]/10+sum[1]/10+sum[2]/10)/3);
}
解决方案
int除以int结果为int型,例如1/2=0,所以为了精度,你应该将有小数的量改为double或float
解决方案二:
#include <stdio.h>
int scor[10][3];
void input()
{
for(int i=0;i<10;i++)
{
printf("chinese maths engishn");
scanf("%d %d %d",&scor[i][0],&scor[i][1],&scor[i][2]);
}
}
void main()
{
input();
double sum[3]={0,0,0};//修改
for(int i=0;i<10;i++)
{
sum[0]+=scor[i][0];
sum[1]+=scor[i][1];
sum[2]+=scor[i][2];
}
printf("avg %.2lf,%.2lf,%.2lf", sum[0]/10,sum[1]/10,sum[2]/10);//修改
printf("zongfen %.2lf", (sum[0]/10+sum[1]/10+sum[2]/10)/3);//修改
}
解决方案三:
void input()这个函数没啥用,二维数组你也没搞清楚,你的程序有好多问题!建议你去补习一下c基础!
时间: 2025-01-29 18:11:55