永发信息网

Win-TC编程 高手指教

答案:2  悬赏:10  手机版
解决时间 2021-07-17 02:36

已知5个学生的4门课的成绩,要求求出每个学生的平均成绩,然后对平均成绩从高到低将各学生成绩排序记录。

#include "stdio.h"
#include "conio.h"
#define N 5

struct student
{
char num[6];
char name[8];
int score[4];
}stu[N];
input(stu)
struct student stu[];
{
int i,j;
for(i=0;i<N;i++)
{
printf("\n please input %d of %d\n",i+1,N);
printf("num: ");
scanf("%s",stu[i].num);
printf("name: ");
scanf("%s",stu[i].name);
for(j=0;j<4;j++)
{
printf("score %d.",j+1);
scanf("%d",&stu[i].score[j]);
}
printf("\n");
}
}
print(stu)
struct student stu[];
{
int i,j;
printf("\nNo. Name Sco1 Sco2 Sco3\n");
for(i=0;i<N;i++)
{
printf("%-6s%-10s",stu[i].num,stu[i].name);
for(j=0;j<4;j++)
printf("%-8d",stu[i].score[j]);
printf("\n");
}
}
main()
{
input();
print();
getch();
}

我写到这里 求平均 和 排序 不会做了

最佳答案
#include <stdio.h>
#include <conio.h>
#define N 5

struct student
{
char num[10];
char name[10];
float score[4];
float average;
}stu[N],temp;

static void forcefloat(float *p)
{
float f = *p;
forcefloat(&f);
}


int main ()
{
int i,j;
float total;
for (i=0;i<N ;i++){
printf("input the student num:\n");
scanf("%s",stu[i].num);
printf ("input the student name:\n");
scanf("%s",stu[i].name);
for (j=0,total=0;j<4;j++) {
printf ("input the %dth score:\n",j);
scanf("%f",&(stu[i].score[j]));
total+= stu[i].score[j];
}
stu[i].average=total/j;
}
for (i=N-1;i>0;i--)
for(j=0;j<i;j++) {
if (stu[j].average<stu[j+1].average) {
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
for (i=0;i<N ;i++){
printf("student num:%s\n",stu[i].num);
printf ("student name:%s\n",stu[i].name);
for (j=0;j<4;j++) {
printf ("the %dth score:%f\n",j,stu[i].score[j]);
}
}
getch();
}
win-tc运行通过
全部回答

#include "stdio.h" #include "conio.h" #define N 5

struct student { char num[6]; char name[8]; float score;//分数就不用数组了 }stu[N]; input(stu) //struct student stu[]; { int i,j; for(i=0;i<N;i++) { printf("\n please input %d of %d\n",i+1,N); printf("num: "); scanf("%s",stu[i].num); printf("name: "); scanf("%s",stu[i].name); //r(j=0;j<4;j++) //{ printf("score %d.",j+1); scanf("%d",&stu[i].score); //} printf("\n"); } } print(stu) //struct student stu[]; { int i,j; printf("\nNo. Name Sco1 Sco2 Sco3\n"); for(i=0;i<N;i++) { printf("%-6s%-10s",stu[i].num,stu[i].name); for(j=0;j<4;j++) printf("%-8d",stu[i].score[j]); printf("\n"); } } main() { input(); print(); getch(); }

逻辑不怎么对啊!等下我个重写一个

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎么样才能跟自己所爱的人永远在一起?
为什么我的电脑每次重启后Internet Explorer
天龙八部宝石碎片哪里有?
QQ牧场没有点到提示还有什么办法开通么?
为什么非要考试啊
考护士证网上报名的方法
成龙叔叔共拍过多少广告?
小麦近年来的涨浮
四海龙王和海神到底谁更厉害些?
从西安做大巴去大柳塔用不用提前订票
侠盗猎车手:罪恶都市的修改器
DNF买的东西被人申请回去了砸办?
如何买到火车票。
我家是外网还是内网?
電影 2012未來預言 什麼時候出?
推荐资讯
钛镁合金门郑州厂家有哪些
仙4从这个场景后就黑屏了,怎么办?
电视里经常说的三季度说的是第三季度还是前三
为什么安装文件会变成不是有效的WIN32
感情求救..
中国近代史上第一个不平等条约是什么?
怎么发短信关cmnet和cmwap功能
在西安哪里可以买到港行版的诺基亚N85
黑执事里见到女王时唱的那首歌是什么歌?
人是不是会因为某个人而改变呢?
管理人员上班上网斗地主是应该的吗?
你能看见我留在屏幕上的面字,却看不到我滴在
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?