C语言编程题:有10个学生,每个学生数据包括学号,姓名,3门课的成绩,从键盘输入10个学生数据,

求学生的学分绩,并以学分绩从高到低排序

#include(stdio.h)

main()

{struct student

{long number;

char name[20];

float score[4];

}person[10];

int i;

printf("请输入10名学生的学号、姓名、及三门成绩:");

for(i=0;i<10;i++)

scanf("%d,%s,%d,%d,%d",&person[i]->number,person[i]->name,&person->score[0],&person->score[1],&person->score[2]);

for(i=0,i<10;i++)

person->score[3]=(person->score[0]+person->score[1]+person->score[2])/3;

printf("10名同学的情况如下:\n");

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]);

拓展资料

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。



温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-23
#include <stdio.h>
struct Student
{
 int num;
 char name[20];
 float score[3], average;
};
int main(void)
{
 int i, j;
 struct Student std[10] = {0}, temp;
 puts("Please enter information of student : ");
 for (i = 0; i < 10; ++i)
 {
  scanf("%d%s", &std[i].num, std[i].name);
  for (j = 0; j < 3; ++j)
  {
   scanf("%f", &std[i].score[j]);
   std[i].average += std[i].score[j];
  }
  std[i].average /= 3;
 }
 for (i = 0; i < 9; ++i)
 {
  for (j = 0; j < 9 - i; ++j)
  {
   if (std[j].average < std[j + 1].average)
   {
    temp = std[j];
    std[j] = std[j + 1];
    std[j + 1] = temp;
   }
  }
 }
 for (i = 0; i < 10; ++i)
 {
  printf("Num=%d Name=%-6s ", std[i].num, std[i].name);
  printf("Score1=%0.2f Score2=%0.2f Score3=%0.2f ", std[i].score[0], std[i].score[1], std[i].score[2]);
  printf("Average=%0.2f\n", std[i].average);
 }
 return 0;
}

追问

我要的是学分绩,可否改一下。。。

追答

什么是学分绩, 举个例子

追问

不用了,谢谢,再问一下怎样将生成的学生数据保存到网络存储空间中?老师说用fprintf

追答

就是打开文件然后在写入呀,这个函数你们没学过么!

追问

上课没听,听不懂。。。。。。。。。。。。

追答

哈哈

我给你发张图片解释下吧

如果这个你还看不懂,那么就是文件方面你需要重学下

本回答被提问者和网友采纳
第2个回答  2018-05-22
#include<stdio.h>

struct Student
{
char name[100];//名字
char num[100];//学号
double class1;//第一门课成绩
double class2;//第二门课成绩
double class3;//第三门课成绩
};
int main()
{
Student student[100];
for (int i = 0; i < 10; i++)//输入学生信息
{
gets(student[i].name);
getchar();//清空键盘缓冲区
gets(student[i].num);
getchar();
scanf("%lf%lf%lf",&student[i].class1,&student[i].class2,&student[i].class3);
}
for (int j = 0; j < 10; j++)//输出学生信息
{
printf("%s\n%s\n%lf\n",student[j].name,student[j].num,(student[j].class1+student[j].class2+student[j].class3)/3.0);
}
return 0;
}
第3个回答  2019-12-21
35 C语言编程题:有10个学生,每个学生数据包括学号,姓名,3门课的成绩,从键盘输入10个学生数据,都一样输入
相似回答