要求输入30个学生的姓名和成绩,然后求平均成绩,并输出前6名的姓名和成绩~~
答案:3 悬赏:50
解决时间 2021-03-09 03:24
- 提问者网友:斯文败类
- 2021-03-08 19:00
要求输入30个学生的姓名和成绩,然后求平均成绩,并输出前6名的姓名和成绩~~
最佳答案
- 二级知识专家网友:晚安听书人
- 2021-03-08 20:10
#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();
}
#define F 6
struct stu
{
char name[30];
int score;
}student[S];
int sum;
int input()
{
int i;
for(i=0;i
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
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();
}
全部回答
- 1楼网友:ー何必说爱
- 2021-03-08 22:30
#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;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |