![]() |
#2
寒风中的细雨2012-11-07 08:37
|

#include <iostream>
#include<stdlib.h>
#include <iomanip>
using namespace std;
int main()
{
int id[5];
int china[5]={75,80,85,52,86};
int math[5];
int i,max=0,y,x;
int j[8];
int sum[5],sum1[5];
for(i=0;i<5;i++)
{
cout<<"请输入学号"<<endl;
cin>>id[i];
cout<<"请输入数学成绩"<<endl;
cin>>math[i];
}
for(i=0;i<5;i++)
{
sum[i]=china[i]+math[i];
sum1[i]=sum[i]; //为了不改变sum数组的值,先将sum赋值给 sum1
}
for(i=0;i<5;i++) //将总成绩最大的数数组下标赋值到J数组,从而得到名次
{
for(y=0;y<5;y++)
{
if(max<sum1[y])
{
max=sum1[y];
j[i]=y;
}
}
x=j[i];
sum1[x]=0;
}
cout<<"学号 语文 数学 总分 均分 名次"<<endl;
for(i=0;i<5;i++)
{
y=j[i];
cout<<id[y]<<setw(6)<<china[y]<<setw(6)<<math[y]<<setw(6)<<sum[y]<<setw(6)<<sum[y]/2<<setw(6)<<i+1<<endl;
}
return 0;
}
请问那出错了?编译没错误,运行时,输入10个数据后没输出结果#include<stdlib.h>
#include <iomanip>
using namespace std;
int main()
{
int id[5];
int china[5]={75,80,85,52,86};
int math[5];
int i,max=0,y,x;
int j[8];
int sum[5],sum1[5];
for(i=0;i<5;i++)
{
cout<<"请输入学号"<<endl;
cin>>id[i];
cout<<"请输入数学成绩"<<endl;
cin>>math[i];
}
for(i=0;i<5;i++)
{
sum[i]=china[i]+math[i];
sum1[i]=sum[i]; //为了不改变sum数组的值,先将sum赋值给 sum1
}
for(i=0;i<5;i++) //将总成绩最大的数数组下标赋值到J数组,从而得到名次
{
for(y=0;y<5;y++)
{
if(max<sum1[y])
{
max=sum1[y];
j[i]=y;
}
}
x=j[i];
sum1[x]=0;
}
cout<<"学号 语文 数学 总分 均分 名次"<<endl;
for(i=0;i<5;i++)
{
y=j[i];
cout<<id[y]<<setw(6)<<china[y]<<setw(6)<<math[y]<<setw(6)<<sum[y]<<setw(6)<<sum[y]/2<<setw(6)<<i+1<<endl;
}
return 0;
}
并且,有没有更好的算法。谢谢
[ 本帖最后由 a99875984 于 2012-11-7 23:00 编辑 ]