中易网

要求输入30个学生的姓名和成绩,然后求平均成绩,并输出前6名的姓名和成绩~~

答案:3  悬赏:50  
解决时间 2021-03-09 03:24
要求输入30个学生的姓名和成绩,然后求平均成绩,并输出前6名的姓名和成绩~~
最佳答案
#define S 30
#define F 6
struct stu
{
char name[30];
int score;
}student[S];
int sum;

int input()
{
int i;
for(i=0;i {printf("The name of Student %d:",i+1);
scanf("%s",&student[i].name);
printf("The score of Student %d:",i+1);
scanf("%d",&student[i].score);
sum+=student[i].score;
}
}

void theSix()
{
int i;
int max;
int maxid;
int found;
i=0;
max=student[0].score-1;
maxid=0;
found=0;
while(found {
for(i=0;i {if(student[i].score>max) {
max=student[i].score;
maxid=i;}
}
printf("No.%d:%s,his score is %d\n",found+1,student[maxid].name,max);
max=0;
student[maxid].score=0;
found++;}
}

int main()
{
input();
theSix();
printf("The average:%d",sum/S);
getchar();
getchar();
}
全部回答
#include #include #include #include #define N 10 class std { int No; char name[10]; float Eng; float Chi; float Mat; float total; public: void setname(char na[]){strcpy(name,na);}; void setNo(int n){No=n;}; void setEng(float e){Eng=e;}; void setChi(float c){Chi=c;}; void setMat(float m){Mat=m;}; void settotal(float t){total=t;}; char* getname(){return name;}; int getNo(){return No;}; float getEng(){return Eng;}; float getChi(){return Chi;}; float getMat(){return Mat;}; float gettotal(){ return total;}; }; class compute { int ns; std na[N]; static float sumEng; static float sumChi; static float sumMat; public: void getdata(); void sort(); void disp(); float aveEng() { return sumEng/ns; } float aveChi() { return sumChi/ns; } float aveMat() { return sumMat/ns; } }; float compute::sumEng=0.0; float compute::sumChi=0.0; float compute::sumMat=0.0; void compute::getdata() { int i,sno; float En,Ch,Ma,Tol; char tname[10]; cout<<"你要管理多少位学生?:"; cin>>ns; for(i=0;i>sno; na[i].setNo(sno); cout<<"学生姓名.:"; cin>>tname; na[i].setname(tname); cout<<"英语成绩:"; cin>>En; sumEng=sumEng+En; na[i].setEng(En); cout<<"语文成绩:"; cin>>Ch; sumChi=sumChi+Ch; na[i].setChi(Ch); cout<<"数学成绩:"; cin>>Ma; sumMat=sumMat+Ma; na[i].setMat(Ma); Tol=En+Ch+Ma; na[i].settotal(Tol); } } void compute::sort() //直接选择排序 { int i,j,pick; std temp; for(i=0;ina[pick].gettotal()) pick=j; } temp=na[i]; na[i]=na[pick]; na[pick]=temp; } } void compute::disp() { cout<
  • 2楼网友:邪性洒脱
  • 2021-03-08 20:51
#include typedef struct student { char name[20]; char num[10]; float value; }student; float ave(student *stu) { int i; float sum = 0.0; for (i = 0; i < 0; ++i) sum+=stu[i].value; return sum/10; } void find(student *stu, float ave) { int i; for (i = 0; i < 10; ++i) if (ave > stu[i].value) printf("姓名:%s 学号:%s 成绩:%.2f\n", stu[i].name, stu[i].num, stu[i].value); } int main(void) { student stu[10]; int i; float _ave = 0.0; for (i = 0; i < 10; ++i) { printf("输入第%d个学生信息(姓名,学号,成绩):", i+1); scanf(" %s %s %f", stu[i].name, stu[i].num, &stu[i].value); } _ave = ave(stu); printf("平均成绩:%.2f\n", _ave); find(stu, _ave); return 0; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯