当前位置:首页 » 考试成绩 » 学生成绩排序源程序

学生成绩排序源程序

发布时间: 2020-12-27 18:36:49

Ⅰ 用C语言如何对学生成绩排序

程序冒泡法比较不错
只是不知道你想怎么排序

Ⅱ 求一个C++ 学生成绩排序程序

//Sample
input*************
//scores.txt
学生复制A
90
学生B
80
丽丽
100
下雪
12
//Sample
output***********
//sorted.txt
丽丽
100
学生A
90
学生B
80
下雪
12
//程序,GNU
C++通过测试***********************
#include
#include
#include
#include
#include
using
namespace
std;
typedef
pair
STU;
int
main()
{
ifstream
fin("scores.txt");
if(fin.good())
{
STU
Node;
list
myList;
while(fin>>Node.second>>Node.first)
myList.push_back(Node);
fin.close();
myList.sort();
ofstream
fout("sorted.txt");
list
::iterator
it=myList.end();
while(myList.size())
{
STU&
last=myList.back();
cout<
评论
0
0
加载更多

Ⅲ 用结构体完成N个学生M名课程的成绩排序 用C语言编写

这里是4名学生一门成绩的排序,不过中间还有生日,希望能给你带来点灵感吧!源代码如下:
#include <stdio.h>
struct student_record
{
char name[8];
struct birth
{
int year;
int month;
int day;
}date;
int score;
}student[4];

void main()
{
struct student_record student[4];
struct student_record stu;
int i,j;
printf("please input date:\n");
for(i=0;i<4;i++)
scanf("%s%d%d%d%d",student[i].name,&student[i].date.year,
&student[i].date.month,&student[i].date.day,&student[i].score);
printf("OUTPUT:\n");
printf("NAME BIRTH SCORE\n");
for(j=1;j<=3;j++)
for(i=0;i<4-j;i++)
{

if(student[i].score<student[i+1].score)
{
stu=student[i];
student[i]=student[i+1];
student[i+1]=stu;
}

}
for(i=0;i<4;i++)
printf("%s %d,%d,%d %d\n",student[i].name,student[i].date.year,
student[i].date.month,student[i].date.day,student[i].score);
}

Ⅳ 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;
}

Ⅳ 编写成绩排序程序。按学生的序号输入学生的成绩,按照分数由高到低的顺序输出学生

#include<iostream.h>
struct
std
//定义学生结构体,包含学好number,成绩score,名次mc
{
int
number;
int
score;
int
mc;
};
#define
N
100
int
main()
{
int
i,j,max,num;
static
int
t=1;
struct
std
stent[N],temp;
cin>>max;
for(i=0;i<max;i++)
{
cin>>stent[i].number;
cin>>stent[i].score;
}
for(i=0;i<max-1;i++)
//冒泡法排序,从高分到低分
{
for(j=0;j<max-i;j++)
if(stent[j].score<stent[j+1].score)
{
temp=stent[j];
stent[j]=stent[j+1];
stent[j+1]=temp;
}
}
for(i=0;i<max-1;i++)
//通过前面的冒泡法排序,已知成绩从高到低排序,就可以确定学生的名次,成绩相同,名次相同,否侧加一
{
if(stent[i].score>stent[i+1].score)
{
stent[i].mc=t++;
stent[i+1].mc=t;
}
else
if(stent[i].score=stent[i+1].score)
{
stent[i].mc=t;
stent[max-1].mc=t;
}
}
cout<<"
成绩
"<<"
学号
"<<"
名次
"<<endl;
for(i=0;i<max;i++)
cout<<"
"<<stent[i].score<<"
"<<
stent[i].number<<"
"<<stent[i].mc<<endl;
cout<<"******************************************************************************"<<endl;
for(i=1;i<=stent[max-1].mc;i++)
//输出相同名次的人数和学号,同名次的学号输出在同一行中,一行最多输出10个学号
{
num=0;
for(j=i-1;j<=max-1;j++)
{
if(i==stent[j].mc)
{
num++;
cout<<stent[j].number<<"
";
}
if(0==num%10)
cout<<endl;
}
cout<<"第"<<i<<"名有:"<<num<<"个"<<endl;
}
return
0;
}

Ⅵ 30名学生考试请编写C语言程序,把成绩按高到低分排序

#include<stdio.h>
intmain()
{
inta[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("由高到低排序输出成绩: ");
for(i=0;i<30;i++)
printf("%d ",a[i]);
return0;
}

Ⅶ c语言程序 输入十个学生成绩 从高到低如何排列

#include"stdio.h"
sort(int a[],int n)//int a[]好像抄有点问题这个有点记不清。不过用指针肯定没问题
{
int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
main()
{
int i,int a[];//a[]要定义长度,要么用指针。然后根据自己要的长度申请空间
for(i=0;i<10;i++)
scanf("%d",&a[i]);
sort(int a[],int 10)//传送有问题,参数实参不用申明类型。你应该是想数组用首地址参数用 a,10就行
for(i=n-1,i>=0,i--)//n主组函数还没有定义用int i=9
printf("%d",a[i]);
}
这个程序怎么修改

Ⅷ 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");
}

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

Ⅸ 一个关于学生成绩排序的程序!!

排序,可能就这样吧,但也不知道这样做的意义!
//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
int *myprint(int a[],int n){
int i;
for(i=0;i<n;printf("%d\t",a[i++]));
return a;
}
void show(int a[],int n,int *(* fun)(int a[],int n)){
fun(a,n);
}
void main(void){
int a[10]={1,7,8,9,2,3,4,5,0,6},i,*(* fun)(int a[],int n)=myprint;
show(a,10,fun);
printf("\n");
}

Ⅹ 急急急!!!编写一个程序,输入10个学生成绩,该程序输入10学生的C语言平时成绩,对输入的数据进行排序

#include<stdio.h>
voidavg(floata[],intn)
{
floataverage=0.0;
inti;
for(i=0;i<10;i++)
{
average+=a[i];
}
average=average/10;
printf("平均成绩是:%.1f ",average);
}
voidsort(floata[],intn)
{

inti,j;
floattemp;
printf("排序前: ");
for(i=0;i<n;i++)
printf("%.1f ",a[i]);
for(i=0;i<n-1;i++)//冒泡法
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
printf("排序后: ");
for(i=0;i<n;i++)
printf("%.1f ",a[i]);
}
voidmain()
{
floata[10];
inti;
printf("请输入成绩: ");
for(i=0;i<10;i++)
{
printf("第%d个学生成绩:",i+1);
scanf("%f",&a[i]);
}
avg(a,10);
sort(a,10);
}

简单实现,没有什么含金量

热点内容
武汉大学学生会辅导员寄语 发布: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