當前位置:首頁 » 考試成績 » 學生成績排序源程序

學生成績排序源程序

發布時間: 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