/*
*Copyright(c)2014,烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:曾晓
*完成日期:2014年 12月 19日
*版本号:v1.0
*/
#include <iostream>
using namespace std;
struct student
{
char num[13];
char name[10];
int cpp;
int math;
int english;
int grade;
double average;
};
const int N=3;
int main()
{
student stu[N];
int i,k;
cout<<"请输入学号、姓名、C++、高数、英语成绩:"<<endl;
for(i=0; i<N; i++)
{
cin>>stu[i].num>>stu[i].name>>stu[i].cpp>>stu[i].math>>stu[i].english;
}
cout<<"学号 姓名 总分 均分"<<endl;
for(k=0; k<N; k++)
{
stu[k].grade=stu[k].cpp+stu[k].math+stu[k].english;
stu[k].average=stu[k].grade/N;
}
for(i=0; i<N; i++)
{
cout<<stu[i].num<<" "<<stu[i].name<<" "<<stu[i].grade<<" "<<stu[i].average;
cout<<endl;
}
return 0;
}
运行结果:
最后计算所有同学的均分的值时发现了一个问题,定义的平均值都是double型,可是为什么输出来的平均分都是整数。很不解
/*
*Copyright(c)2014,烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:曾晓
*完成日期:2014年 12月 19日
*版本号:v1.0
*/
#include <iostream>
using namespace std;
struct student
{
char num[13];
char name[10];
int cpp;
int math;
int english;
int grade;
double average;
};
const int N=3;
int main()
{
student stu[N];
int i,k,sum=0;
double Average;
cout<<"请输入学号、姓名、C++、高数、英语成绩:"<<endl;
for(i=0; i<N; i++)
{
cin>>stu[i].num>>stu[i].name>>stu[i].cpp>>stu[i].math>>stu[i].english;
}
cout<<"学号 姓名 总分 均分"<<endl;
for(k=0; k<N; k++)
{
stu[k].grade=stu[k].cpp+stu[k].math+stu[k].english;
stu[k].average=stu[k].grade/3.0;
}
for(i=0; i<N; i++)
{
cout<<stu[i].num<<" "<<stu[i].name<<" "<<stu[i].grade<<" "<<stu[i].average;
cout<<endl;
}
cout<<"所有同学均分的平均值是:"<<endl;
for(i=0;i<N;i++)
{ sum+=stu[i].average;
Average=sum/3.0;
}
cout<<Average;
return 0;
}
运行结果:
应该除以3.0的,幸好回过头来看了一遍,不要再犯这种错误了><