C语音编程题(一个班级有N个学生,每个学生有学号、姓名,学生学习课程语文、数学、英语)
(1)由键盘输入每个学生的学号姓名以及三门课程的成绩,检查其合理性。
(2)输出全班学生三门课程的成绩、总分和平均成绩,并且按照学生平均成绩从高到低排序,要求每行输出一个同学。
(3)其格式为: 展开
#include<stdio.h>
intn=0;
printf("请输入有多少个学生:\n");
printf("请输入第%d名学生的学号:\n",i+1);
scanf("%u",&stu[i].stuNum);
getchar();
printf("请输入第%d名学生的姓名:\n",i+1);
scanf("%d",&stu[i].scoreCh);
getchar();
printf("请输入第%d名学生的数学分数:\n",i+1);
scanf("%d",&stu[i].scoreMath);
getchar();
printf("请输入第%d名学生的英语分数:\n",i+1);
if(stu[j].totalScore>stu[j+1].totalScore)
{
studenttempStu;
printf("名次学号姓名语文数学英语总分平均分\n");
for(i=0;i<n;i++)
return0;
}
简洁的语言
C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。
以上内容参考:百度百科-c语言
推荐于2018-02-27
//没有做防护检测,自己添加一下吧
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef unsigned int uint;
typedef struct tagStudent student;
struct tagStudent
{
uint stuNum;
//uint seq;
wchar_t name[10];
int scoreCh;
int scoreEn;
int scoreMath;
int totalScore;
int averScore;
};
int main(void)
{
int n = 0;
int i = 0, j = 0;
wchar_t wch = 0;
student *stu = NULL;
printf("请输入有多少个学生:\n");
scanf("%d", &n);
getchar();
stu = (student *)malloc(sizeof(student)*n);
if(stu != NULL)
{
memset(stu, 0, sizeof(student)*n);
for(i = 0; i < n; i++)
{
printf("请输入第%d名学生的学号:\n",i+1);
scanf("%u", &stu[i].stuNum);
getchar();
printf("请输入第%d名学生的姓名:\n",i+1);
j = 0;
while((wch = getwchar()) != '\n')
{
stu[i].name[j] = wch;
j++;
}
printf("请输入第%d名学生的语文分数:\n",i+1);
scanf("%d", &stu[i].scoreCh);
getchar();
printf("请输入第%d名学生的数学分数:\n",i+1);
scanf("%d", &stu[i].scoreMath);
getchar();
printf("请输入第%d名学生的英语分数:\n",i+1);
scanf("%d", &stu[i].scoreEn);
getchar();
stu[i].totalScore = stu[i].scoreCh+stu[i].scoreMath+stu[i].scoreEn;
stu[i].averScore = stu[i].totalScore / 3;
}
for(i = 0; i < n-1; i++)
{
for(j = 0; j < n-1-i; j++)
{
if(stu[j].totalScore > stu[j + 1].totalScore)
{
student tempStu;
memset(&tempStu, 0, sizeof(student));
memcpy(&tempStu, stu+j, sizeof(student));
memcpy(stu+j, stu+j+1, sizeof(student));
memcpy(stu+j+1, &tempStu, sizeof(student));
}
}
}
printf("名次 学号 姓名 语文 数学 英语 总分 平均分\n");
printf("=================================================================\n");
for(i = 0; i < n; i++)
{
printf("%d %u %S %d %d %d %d %d\n", i+1, stu[i].stuNum, stu[i].name, stu[i].scoreCh, stu[i].scoreMath, stu[i].scoreEn, stu[i].totalScore, stu[i].averScore);
}
}
return 0;
}