主题:请大家帮忙看看 哪里出错了
// test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream.h>
class Student
{
public:
int Number;
char Name[10];
float Chinese,Math,English;
void sort(int n,float *pt,Student *p,Student *pr) /*插入法排序*/
{
Student m;
m=*pr;
while (n>0&&(*(pt+n)<*(pt+n-1)))
{
*(p+n)=*(p+n-1);
n--;
}
*(p+n)=m;
}
};
int main()
{
int i;
float ct=0,mt=0,et=0,tt=0,total[5];
Student stu[5];
for (i=0;i<5;i++)
{
cout<<"请分别输入第"<<i+1<<"名学生的学号 姓名 语文成绩 数学成绩 英语成绩:"<<endl;
cin>>stu[i].Number>>stu[i].Name>>stu[i].Chinese>>stu[i].Math>>stu[i].English;
total[i]=stu[i].Chinese+stu[i].Math+stu[i].English;
stu[i].sort(i,total,stu,&stu[i]);
}
cout<<" "<<"学号 姓名 语文 数学 英语 总成绩"<<endl;
for (i=0;i<5;i++)
{
total[i]=stu[i].Chinese+stu[i].Math+stu[i].English;
cout<<" "<<stu[i].Number<<" "<<stu[i].Name<<" "<<stu[i].Chinese<<" "<<stu[i].Math<<" "<<stu[i].English<<" "<<total[i]<<endl;
}
for (i=0;i<5;i++)
{
ct+=stu[i].Chinese;
mt+=stu[i].Math;
et+=stu[i].English;
tt+=total[i];
}
cout<<"语文平均成绩为:"<<ct/5<<endl;
cout<<"数学平均成绩为:"<<mt/5<<endl;
cout<<"英语平均成绩为:"<<et/5<<endl;
cout<<"总平均成绩为: "<<tt/5<<endl;
return 0;
}
这个题就是要求输入5个学生的语文 数学 英语成绩,最后根据三科的总成绩按顺序排列 可是我排完序并不总是正确 有些数据可以 有些就不行 附件里有两张图片例子 请大家帮忙分析下哪里出错了 怎么改 (本人基础差 请多多指教)
//
#include "stdafx.h"
#include <iostream.h>
class Student
{
public:
int Number;
char Name[10];
float Chinese,Math,English;
void sort(int n,float *pt,Student *p,Student *pr) /*插入法排序*/
{
Student m;
m=*pr;
while (n>0&&(*(pt+n)<*(pt+n-1)))
{
*(p+n)=*(p+n-1);
n--;
}
*(p+n)=m;
}
};
int main()
{
int i;
float ct=0,mt=0,et=0,tt=0,total[5];
Student stu[5];
for (i=0;i<5;i++)
{
cout<<"请分别输入第"<<i+1<<"名学生的学号 姓名 语文成绩 数学成绩 英语成绩:"<<endl;
cin>>stu[i].Number>>stu[i].Name>>stu[i].Chinese>>stu[i].Math>>stu[i].English;
total[i]=stu[i].Chinese+stu[i].Math+stu[i].English;
stu[i].sort(i,total,stu,&stu[i]);
}
cout<<" "<<"学号 姓名 语文 数学 英语 总成绩"<<endl;
for (i=0;i<5;i++)
{
total[i]=stu[i].Chinese+stu[i].Math+stu[i].English;
cout<<" "<<stu[i].Number<<" "<<stu[i].Name<<" "<<stu[i].Chinese<<" "<<stu[i].Math<<" "<<stu[i].English<<" "<<total[i]<<endl;
}
for (i=0;i<5;i++)
{
ct+=stu[i].Chinese;
mt+=stu[i].Math;
et+=stu[i].English;
tt+=total[i];
}
cout<<"语文平均成绩为:"<<ct/5<<endl;
cout<<"数学平均成绩为:"<<mt/5<<endl;
cout<<"英语平均成绩为:"<<et/5<<endl;
cout<<"总平均成绩为: "<<tt/5<<endl;
return 0;
}
这个题就是要求输入5个学生的语文 数学 英语成绩,最后根据三科的总成绩按顺序排列 可是我排完序并不总是正确 有些数据可以 有些就不行 附件里有两张图片例子 请大家帮忙分析下哪里出错了 怎么改 (本人基础差 请多多指教)