c++,程序无法输出结果#include <iostream>
using namespace std;
struct student
{
char name[20];
int math;
int chinese;
int english;
int sum;};
int main()
{
int i,j;
struct student std[10];
for(i=0;i<10;i++)
{
cout<<"请输入学生名字"<<endl;
cin>>std[i].name;
cout<<"请输入该学生的数学成绩"<<endl;
cin>>std[i].math;
cout<<"请输入该学生的英语成绩"<<endl; cin>>std[i].english;
cout<<"请输入该学生的语文成绩"<<endl; cin>>std[i].chinese;
}
for(i=0;i<10;i++) std[i].sum=std[i].chinese+std[i].english+std[i].math;
for(i=0;i<9;i++)
{
for(j=0;i<9-i;j++)
{
if(std[i].sum<std[i].sum)
{
struct student temp=std[j];
std[j]=std[j+1];
std[j+1] = temp;
}
}
}
cout<<"姓名"<<'\t'<<"数学成绩"<<'\t'<<"语文成绩"<<'\t'<<"英语成绩"<<'\t'<<"总成绩"<<endl;
for(i=0;i<10;i++)
{ cout<<std[i].name<<'\t'<<std[i].math<<'\t'<<std[i].chinese<<'\t'<<std[i].english<<'\t'<<std[i].sum<<endl; }
return 0;}
你是排序算法出错,我帮你优化了一下输入输出,排序的错误也改好了,详情请见代码及注释。还有就是变量、函数名等最好不要取名为std。
#include<stdio.h>运行结果如图片所示
追问您好,我这老师教的是c++,用cout输出,这里为什么要改成printf?
追答printf比cout的输出速度更快,不过你用cout也可以,cout更加简单。
追问哦哦,谢谢