有10个学生,每个学生数据包括学号,姓名、3门课程的成绩,从键盘输入10个学生的数据,要求输出学生3门课

如题所述

代码如下:

#include <stdio.h>

#include <stdlib.h>

struct student {

 char stuNum[20]; //学生学号

 char stuName[20]; //学生姓名

 int stuscore[3]; //学生3门课成绩

};

int main() {

 int i, j;

 student stu[10];

 //为了简单,此处只输入前3个学生的数据。如果要输入10个学生数据,把for中3改成10即可

 for(i = 0; i < 3; i++) {

  printf("请输入第%d个学生学号:", i + 1);

  scanf("%s", stu[i].stuNum);

  printf("请输入第%d个学生姓名:", i + 1);

  scanf("%s", stu[i].stuName);

  printf("请输入第%d个学生的三门课程成绩:", i + 1);

  for(j = 0; j < 3; j++)

   scanf("%d", &stu[i].stuscore[j]);

  printf("\n");

 }

 //输出,此处同样为了简略只输出3个。可以自己改成1个哦

 printf("前3个学生3门课成绩如下:\n");

 for(i = 0; i < 3; i++) {

  printf("第%d个学生3门课成绩为:", i + 1);

  printf("%4d%4d%4d\n", stu[i].stuscore[0], stu[i].stuscore[1], stu[i].stuscore[2]);

 }

}

截图如下:

追问

如果要计算平均值呢,而且输出要按照平均值从大到小输出怎么办?

追答

#include
#include
#include

struct student {
char stuNum[20]; //学生学号
char stuName[20]; //学生姓名
float stuscore[3]; //学生3门课成绩
float aveScore; //平均成绩
};

//插入排序
void insertSort(student stu[], int N) {
int j, p;

student temp;
for(p = 1; p 0 && stu[j - 1].aveScore > temp.aveScore; j--)
stu[j] = stu[j - 1];
stu[j] = temp;
}
}

int main() {
int i, j;
student stu[10];

//为了简单,此处只输入前5个学生的数据。如果要输入10个学生数据,把for中5改成10即可
for(i = 0; i = 0; i--) {
printf("%s\t%3f\n", stu[i].stuNum, stu[i].aveScore);
}
}

温馨提示:内容为网友见解,仅供参考
无其他回答

...姓名、3门课程的成绩,从键盘输入10个学生的数据,要求输出学生3门课...
char stuName[20]; \/\/学生姓名 int stuscore[3]; \/\/学生3门课成绩 };int main() { int i, j;student stu[10];\/\/为了简单,此处只输入前3个学生的数据。如果要输入10个学生数据,把for中3改成10即可 for(i = 0; i < 3; i++) { printf("请输入第%d个学生学号:", i + 1);...

...姓名、3门课程的成绩,从键盘输入10个学生的数据,要求输出学生3门课...
stud[i].average=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])\/3.0;} } void output() \/* 输出学生的信息 *\/ { int i;printf("\\n");for(i=0;i<SIZE;i++)printf("%s %s %d %d %d %3.1f\\n",stud[i].id,stud[i].name,stud[i].score[0],stud[i].sco...

...姓名,3门课的成绩,从键盘输入10个学生数据,
for(i=0;i<10;i++)printf("学号:%d 姓名:%s 成绩:%d %d %d 平均成绩:%d\\n",person[i]->number,person[i]->name[20],person->score[0],person->score[1],person->score[2],person->score[3]);}

...每个学生的数据包括学号,姓名,三门课的成绩,从文件中读取学生数据...
bw.write(language + "成绩最高分:" + score + ",获得者:"); for (Student s : students1) { bw.write("[学号:" + s.getCode() + "," + s.getName() + "] "); } bw.write("\\r\\n"); Map<Double, List<Student>> lowMap = map.get("low"); score = (Double) lowMap.keySet()...

题目:有10个学生,每个学生的数据包括学号'姓名及3门课的成绩,总成绩和...
i<N;i++){printf(“%5s%10s”,stu[i].num, stu[i].name);for(j=0;j<3;j++)printf(“%9d”,stu[i].score[j]);printf(“%8.2f\\n”,stu[i].avr);} printf(“average=%6.2f\\n”,average);printf(“The highest score is:%s,score total:%d.”stu[maxi].name,max);} ...

...姓名、三门课的成绩,从键盘输入10个学生数据,要求打印出3门课的总...
printf("第%d个学生的信息:\\n",i+1);scanf("%s%s%d%d%d",stud[i].id,stud[i].name,&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);stud[i].total=stud[i].score[0]+stud[i].score[1]+stud[i].score[2];} for(i=0;i<SIZE;i++){ for(j=0;j<SIZE-i-...

结构体使用时应注意什么
      程序要求:有十个学生,每个学生的数据包括学号、姓名、三门课程的成绩,从键盘输入10个学生的数据,要求输出三门课程总平均成绩以及最高分的学生的数据(包括学号、姓名、三门课程的成绩和平均成绩)。        在这个...

...姓名,和三门成绩。从键盘输入十个学生的成绩,
struct student *p,*p3;int max=0;int i;int sum=0;p=creat(); \/\/\/ while(p->next!=null){for(i=0;i<3;i++){ sum=sum+p->score[i];if(p->score[i]>max){ max=p->score[i];p3=p;} p=p->next;} } printf("%d",max);printf("%d.%d,%s,%d,%d,%d",max,&p->...

...有10个学生,每个学生的数据包括学号,姓名,及三门课成绩,总,平均...
float score[4];}person[10];int i;printf("请输入10名学生的学号、姓名、及三门成绩:");for(i=0;i<10;i++)printf("学号:%d 姓名:%s 成绩:%d %d %d 平均成绩:%d\\n",person[i]->number,person[i]->name[20],person->score[0],person->score[1],person->score[2],person->...

有10个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号...
include<string.h> struct student\/*定义一个全局结构体*\/ { char id[10];\/*存放学号*\/ char name[15];\/*存放姓名*\/ double score[3];\/*存放三门功课成绩*\/ };void main(){ void aver(struct student *sp);\/*函数声明,因为该函数定义在调用它的main函数之后*\/ struct student stu[10]...

相似回答