当前位置:首页 » 考试成绩 » c语言五个学生成绩排序

c语言五个学生成绩排序

发布时间: 2020-12-28 15:24:19

『壹』 c语言程序设计 学生成绩排序系统

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#define MAX 200
void dis_menu();
void load_score();
void sort_english();
void sort_math();
void sort_c();
void sort_num();
void display();
typedef struct
{
char name[20];
int num;
float math;
float english;
float c;
}Stu;
Stu stu[MAX];
int num=0;
bool tag=true;
bool Tag=false;
void main()
{
dis_menu();
}
void dis_menu()
{
int i=0;
char ch;
do{
printf("******** *欢迎使用学生成绩排序系统* ********** ******\n");
printf("****** ****输入要进行的操作****** ******* ***** *\n");
printf("**** ******1:按数学成绩排序********** **** ***** **\n");
printf("** ********2: 按英语成绩排序***** * ***** ***\n");
printf("* *********3:按C语言成绩排序***** * ************ **\n");
printf("*** *******4:按学生学号排序****** ***** ***** *\n");
printf("***** *****5:载入学生成绩**** ********* *****\n");
printf("******* ***0:退出系统********* ************** ***\n");
fflush(stdin);
scanf("%d",&i);
switch(i)
{
case 1:
if(!Tag) { printf("先载入学生成绩!\n"); break; }
sort_math();
printf("是否打印排序后学生成绩:(Y or N)\n");
fflush(stdin);
ch=getchar();
switch(ch)
{
case 'Y':
case 'y':
display();
break;
default:break;
}
break;
case 2:
if(!Tag) { printf("先载入学生成绩!\n"); break; }
sort_english();
printf("是否打印排序后学生成绩:(Y or N)\n");
fflush(stdin);
ch=getchar();
switch(ch)
{
case 'Y':
case 'y':
display();
break;
default:break;
}
break;
case 3:
if(!Tag) { printf("先载入学生成绩!\n"); break; }
sort_c();
printf("是否打印排序后学生成绩:(Y or N)\n");
fflush(stdin);
ch=getchar();
switch(ch)
{
case 'Y':
case 'y':
display();
break;
default:break;
}
break;
case 4:
if(!Tag) { printf("先载入学生成绩!\n"); break; }
sort_num();
printf("是否打印排序后学生成绩:(Y or N)\n");
fflush(stdin);
ch=getchar();
switch(ch)
{
case 'Y':
case 'y':
tag=false;
display();
break;
default:break;
}
break;
case 5:
load_score();
Tag=true;
printf("是否打印载入后的学生成绩:(Y or N)\n");
fflush(stdin);
ch=getchar();
switch(ch)
{
case 'Y':
case 'y':
tag=false;
display();
break;
default:break;
}
break;
default:
printf("感谢使用本系统!\n");
system("exit");
exit(0);
}
printf("是否继续?(Y or N)\n");
fflush(stdin);
ch=getchar();
system("cls");
}while(ch=='Y'||ch=='y');

}

void load_score()
{
int i;
printf("输入学生人数\n");
scanf("%d",&num);
printf("学生学号 姓名 数学成绩 英语成绩 C语言成绩 \n");
for(i=0;i<MAX&&i<num;i++)
scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,&stu[i].math,&stu[i].english,&stu[i].c);
if(i>MAX)
printf("输入人数有误!");
}

void display()
{
int i=0;
if(tag)
{
printf("名次\t学号\t姓名\t数学\t英语\tC语言\n");
for(i=0;i<num;i++)
printf("%d\t%d\t%s\t%.2f\t%.2f\t%.2f\n",i+1,stu[i].num,stu[i].name,stu[i].math,stu[i].english,stu[i].c);
}
else
{
printf("学号\t姓名\t数学\t英语\tC语言\n");
for(;i<num;i++)
printf("%d\t%s\t%.2f\t%.2f\t%.2f\n",stu[i].num,stu[i].name,stu[i].math,stu[i].english,stu[i].c);

}
}

void sort_math()
{
int i,j;
Stu temp;
for(i=1;i<num;i++)
for(j=1;j<=num-i;j++)
{
if(stu[j-1].math<=stu[j].math)
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
}
printf("排序完成!\n");
}

void sort_english()
{
int i,j;
Stu temp;
for(i=1;i<num;i++)
for(j=1;j<=num-i;j++)
{
if(stu[j-1].english<=stu[j].english)
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
}
printf("排序完成!\n");
}

void sort_c()
{
int i,j;
Stu temp;
for(i=1;i<num;i++)
for(j=1;j<=num-i;j++)
{
if(stu[j-1].c<=stu[j].c)
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
}
printf("排序完成!\n");
}
void sort_num()
{
int i,j;
Stu temp;
for(i=1;i<num;i++)
for(j=1;j<=num-i;j++)
{
if(stu[j-1].num>=stu[j].num)
{
temp=stu[j-1];
stu[j-1]=stu[j];
stu[j]=temp;
}
}
printf("排序完成!\n");
}

刚写的,希望对你有用,考试顺利!

『贰』 c语言题目,已知5个学生4门成绩,求出平均成绩并且排序

#include<iostream>
using namespace std;

void main()
{
int i,j,sum,t;
int a[5][5]={{78,82,93,74},{91,82,72,76},{67,89,90,65},{77,88,99,89},{78,89,99,76}}; //5*5够用了
printf("\n");
for (i=0;i<5;i++)
{ sum=0;
for(j=0;j<4;j++) //加前4个成绩
sum+=a[i][j];
a[i][4]=sum/4;}//平均值除4!存在下标为4的元素内;
for(int k=0;k<5;k++)// 加了层循环回 参看答起泡法
for(i=0;i<5-k;i++)
if(a[i][4]<a[i+1][4])//条件移到循环外了
for(j=0;j<5;j++)
{t=a[i][j];a[i][j]=a[i+1][j];a[i+1][j]=t;}

for(i=0;i<5;i++)
{for(j=0;j<5;j++)
printf("%8d",a[i][j]);
printf("\n");}
}

『叁』 【C语言】输入学生姓名和成绩排序

这种一般都是要用到结构体的,不用结构体很难讲名字和成绩这种数据一一对应起来。内

结构体容都是设置一种结构,这个结构中可以放置各个类型的数据,比如说一个人是一个结构体,那么名字,身高,体重,性别,等等都可以作为结构体里的数据。然后用这个结构体来初始化一些人,比如说小明,你将小明的身高,体重,性别等等初始化赋值给这个结构体,就可以使用 . 这个运算符号来调用结构体里成员数据。比如说 小明.姓名 的值就是小明。

根据你的提问,具体代码如下:

首先定义一个结构体的定义:

typedef struct Student
{
char name[20]; //名字

int grade; //成绩

}

初始化各个实例:
struct Student Jack, Tom, Tim;

将各个成员赋值:
Jack.name[20] = Jack;
Jack.grade = 63;

以此类推。

排序的具体方法也不难,自己看看书吧。

使用结构体的好处就是将一组与一个事物相关的数值放在一起,统一的管理和调用。

『肆』 C语言~输入5个学生的学号,成绩,按成绩排序(升序),查找90分以上的

代码:

#include&lt;stdio.h&gt;

struct student

{

int num,score[3],age;

char name[20];

float aver;

}stu[1000];

main()

{

int i,j,n;

struct student temp;

/*注意:变量temp的类型与数组stu的元素类型为相同结构体的时候,才可交换两个结构体数组元素,所以此处需要定义temp的类型*/

printf("请输入学生人数: ");

scanf("%d",&n);

printf("请按顺序输入名字、学号、年龄、分数: ");

for(i=0;i&lt;n;i++)

{

scanf("%s",&stu&lt;i&gt;.name);

scanf("%d",&stu&lt;i&gt;.num);

scanf("%d",&stu&lt;i&gt;.age);

for(j=0;j&lt;3;j++)

scanf("%d",&stu&lt;i&gt;.score[j]);

}

for(i=0;i&lt;n;i++)

{int sum=0;

for(j=0;j&lt;3;j++)

sum+=stu&lt;i&gt;.score[j];

stu&lt;i&gt;.aver=sum/3.0;

}

for(i=0;i&lt;n-1;i++)/*利用冒泡排序法按平均分高低排序*/

{for(j=0;j&lt;n-i-1;j++)

{

if(stu[j].aver&gt;stu[j+1].aver)

{temp=stu[j];/*此处交换的应当是数组元素,而不是平均分*/

stu[j]=stu[j+1];

stu[j+1]=temp;

}

}

}

printf("学生信息如下(姓名、学号、年龄、成绩、平均分): ");

for(i=0;i&lt;n;i++)

{

printf("%s%d%d",stu&lt;i&gt;.name,stu&lt;i&gt;.num,stu&lt;i&gt;.age);

for(j=0;j&lt;3;j++)

printf("%d",stu&lt;i&gt;.score[j]);

printf("%.2f ",stu&lt;i&gt;.aver);

}

}

(4)c语言五个学生成绩排序扩展阅读:

头文件#include&lt;stdio.h&gt;中

stdio.h是stand input&output的缩写,意思是标准输入输出头文件。凡是用到标准输入输出函数,就要调用该头文件。

查看stdio.h目录下包含哪些函数:主要有文件访问、二进制输入/输出、格式化和非格式化输入/输出、文件定位、错误处理、文件操作等。

具体打开自己的VS安装目录,找到include文件夹,打开include夹下面的stdio.h文件即可查看

(C:Program Files(x86)Microsoft Visual Studio 14.-1.1.10include)

常用标准输入输出函数:

scanf()从屏幕格式输入

printf()格式输出到屏幕

getchar()从屏幕得到一个字符

putchar()字符输出到屏幕

gets()从屏幕得到一个字符串

puts()字符串输出到屏幕

fscanf()从磁盘格式输入

fprintf()格式输出到磁盘

fgetc()从磁盘得到一个字符

fputc()字符输出到磁盘

fgets()从磁盘得到一个字符串

fputs()字符串输出到磁盘

#号是预处理语句,表明在编译之前预先进行处理。

.h是header file的缩写,表面这是一个头文件。

include是文件包含命令,后面跟着引号""或者尖括号&lt;&gt;,意思是将引号或尖括号内指定的文件包含到本程序中,成为本程序的一部分,而包含的文件通常是由系统提供的。

『伍』 将5名学生的成绩从高到低排序c语言

#include<stdio.h>
int main()
{
int a[30],i,j,t,k;
printf("请以来次输入源30个学生的成绩:");
for(i=0;i<30;i++)scanf("%d",&a[i]);
for(i=0;i<29;i++)
{
k=i;
for(j=i;j<30;j++)
if(a[j]>a[k])k=j;
if(i!=k)
{
t=a[i];
a[i]=a[k];
a[k]=t;
}

}
printf("由高到低排序输出成绩:\n");
for(i=0;i<30;i++)
printf("%d\n",a[i]);
return 0;
}

『陆』 c语言 学生成绩排序

结构体还没学到,
我说个大概构思,希望能采纳
让第一个分别和第二个,第三个....比较,如果第一个小于后面的
,则互换
for(i
=
0;
i
<
学生个数;
i++)
{
for(j
=
1;
j
<
学生个数;j++)
{
if(成绩[i]
<
成绩[j])
score
=
成绩[i];
成绩[i]
=
成绩[j];
成绩[j]
=
score;
}
}

『柒』 5个学生4门成绩求平均分并从大到小排序(C语言编程)

#include < stdio.h >

struct stu{
char name[10];
float score[5];
}stu1[5];

int main()
{
void sort(struct stu* ss);

int i,j,sum;

for(i = 0; i < 5; i++){
printf("%s\n","请输入姓名:");
scanf("%s",stu1[i].name);
printf("%s\n","请分别输入成绩:");
for(j = 0; j < 4; j++){
scanf("%d",&stu1[i].score[j]);
sum+=stu1[i].score[j];
}
stu1[i].score[5] = sum/4;
}

sort(stu1);

printf("%s","平均成绩从高到底是:");
for( i = 0; i < 5; i++){

printf("%s %d\t",stu1[i].name,stu1[i].score[5]);
}

return 0;
}

void sort(struct stu* ss)
{
int i ,j,q,temp;
for ( i = 0; i < 4; i++){
q = i;
for( j = i+1; j<5; j++){
if( stu1[q].score[5] < stu1[j].score[5])
q = j;
}
if( q != i){
temp = stu1[i].score[5];
stu1[i].score[5] = stu1[q].score[5];
stu1[q].score[5] = temp;
}
}

}

『捌』 C语言编程:任意输入5个学生成绩,对其进行排序,按照从小到大的顺序输出!

先定义一个int型数组,然后给数组赋值,在接下来用冒泡排序法就OK啦。

『玖』 C语言的学生成绩排序问题

#include <stdio.h>
#include <stdlib.h>

int main() {
struct student {
int num;
float scores;
};
student *stu = new student;
float insert = 0, temp = 0;
int i = 0;
for (; insert != -1; i++) {
printf("请输入学生成绩(结束输入-1):");
scanf("%f", &insert);
stu[i].num = i + 1;
stu[i].scores = insert;
}
for (int m = 0; m < i - 2; m++) {
for (int n = 0; n < i - 2; n++) {
temp = stu[n].scores;
if (temp < stu[n + 1].scores) {
stu[n].scores = stu[n + 1].scores;
stu[n + 1].scores = temp;
temp = stu[n].num;
stu[n].num = stu[n+1].num;
stu[n+1].num = (int)temp;
}
}
}
for (int j = 0 ; j < i - 1 ; j++){
printf("%s%d%s\t%s%d\t%s%.2f\n","第",j+1,"名:","号数:",stu[j].num,"成绩:",stu[j].scores);
}
system("PAUSE");
return 0;
}

『拾』 C语言编程:输入五个人的名字和成绩,根据成绩从小到大排序输出名字和成绩,和总成绩

又是这个问题
#include<stdio.h>
#include<stdlib.h>

#defineN5
structstudent
{
charname[10];
floatscore;
};

intmain()
{
studentstu[N];
floatsum=0.0;
floatt_score[N];
inti;
intj;
floattemp;

printf("输入学生名字成绩,例如:小明90 ");
for(i=0;i<N;++i)
{
scanf("%s",stu[i].name);
scanf("%f",&stu[i].score);
t_score[i]=stu[i].score;
sum+=stu[i].score;
}

for(i=0;i<N-1;++i)
{
for(j=i+1;j<N;++j)
{
if(t_score[i]>t_score[j])
{
temp=t_score[i];
t_score[i]=t_score[j];
t_score[j]=temp;
}
}
}

printf("按成绩从小到大排序: ");
for(i=0;i<N;++i)
{
for(j=0;j<N;++j)
{
if(t_score[i]==stu[j].score)
{
printf("%s%0.2f ",stu[j].name,stu[j].score);
}
}
}
printf("成绩总和:%0.2f ",sum);
return0;
}

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919