當前位置:首頁 » 編程語言 » 成績排序c語言函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

成績排序c語言函數

發布時間: 2022-03-12 02:06:43

Ⅰ 學生成績排序問題,用c語言。。。

建議你首先定義數據結構,兩個結構體數組。
一個結構體存放學生信息,另外一個是存放選課信息。

學生成績和選課信息數據可以通過讀文件讀到結構體數據,然後編寫循環實現相應的功能即可。

另外建議你自己實踐一下,學習編程最大的悲哀就是抄別人的程序。當然可以借鑒,但是還是要自己編寫。

Ⅱ C語言~輸入5個學生的學號,成績,按成績排序(升序),查找90分以上的

代碼:

#include<stdio.h>

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<n;i++)

{

scanf("%s",&stu<i>.name);

scanf("%d",&stu<i>.num);

scanf("%d",&stu<i>.age);

for(j=0;j<3;j++)

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

}

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

{int sum=0;

for(j=0;j<3;j++)

sum+=stu<i>.score[j];

stu<i>.aver=sum/3.0;

}

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

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

{

if(stu[j].aver>stu[j+1].aver)

{temp=stu[j];/*此處交換的應當是數組元素,而不是平均分*/

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

stu[j+1]=temp;

}

}

}

printf("學生信息如下(姓名、學號、年齡、成績、平均分): ");

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

{

printf("%s%d%d",stu<i>.name,stu<i>.num,stu<i>.age);

for(j=0;j<3;j++)

printf("%d",stu<i>.score[j]);

printf("%.2f ",stu<i>.aver);

}

}

(2)成績排序c語言函數擴展閱讀:

頭文件#include<stdio.h>中

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是文件包含命令,後面跟著引號""或者尖括弧<>,意思是將引號或尖括弧內指定的文件包含到本程序中,成為本程序的一部分,而包含的文件通常是由系統提供的。

Ⅲ C語言 怎麼對成績排序

#include <stdlib.h>

int cmp(const void *a, const void *b)
{
student *x=(student*)a;
student *y=(student*)b;
if(x->score[0] > y->score[0])//升序排序(從小到大) 如果>改成<,就是降序排序(從大到小)
return 1;
return 0;
}
//上面函數放在struct student下面,需要該結構
//排序方式可以靈活調整,上面我只是用第一門分數進行比較
//你也可以用其它分數進行比較,多寫2個函數就行,如int cmp2(const void*a,const void*b)等等。

//排序函數

qsort(stu,STU_NUM,sizeof(stu[0]),cmp);
//stu是數組名,STU_NUM是數組元素個數,cmp就排序方式(可以替換為cmp2等等)

Ⅳ C語言編程成績排序輸出

struct stu
{char a[10];
int i;
int j;
int k;
int m;
int n;
int x;
};
int sum(struct stu p)
{int sum=p.i+p.j+p.k+p.m+p.n;
return sum;}
main()
{struct stu p[6],ac;
int l,a[6],b;
for(l=0;l<6;l++)
{scanf("%s%d%d%d%d%d",p[l].a,&p[l].i,&p[l].j,&p[l].k,&p[l].m,&p[l].n);
p[l].x=sum(p[l]);}
printf("姓名 英語 計算機原理 統計學原理 政治 C語言 總分 平均分\n");
for(l=0;l<6;l++)
{printf("%s %5d%5d%5d%5d%5d%5d%5d\n",p[l].a,p[l].i,p[l].j,p[l].k,p[l].m,p[l].n,p[l].x,p[l].x/5);}
for(l=0;l<6;l++)
for(b=0;b<6;b++)
if(p[l].x>p[b].x)
{ac=p[l];p[l]=p[b];p[b]=ac;}
printf("姓名 英語 計算機原理 統計學原理 政治 C語言 總分 平均分\n");
for(l=0;l<6;l++)
{printf("%s %5d%5d%5d%5d%5d%5d%5d\n",p[l].a,p[l].i,p[l].j,p[l].k,p[l].m,p[l].n,p[l].x,p[l].x/5);}
getch();}

Ⅳ 編寫c語言程序用三個函數求10個同學的平均分及成績排序

#include<stdio.h>
#definen10
intmain()
{
intpj(doubleb[]);
voidpx(doubleb[]);
intsc(doubleb[]);
doublea[10];
inti;
for(i=0;i<10;i++)
scanf("%lf",&a[i]);
sc(a);
return0;
}

intpj(doubleb[])
{
doublesum,pj;
inti;
for(i=0;i<n;i++)
sum+=b[i];
pj=sum/n;
returnpj;
}

voidpx(doubleb[])
{
inti,j,tem;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(b[i]<b[j])
{
tem=b[j];
b[j]=b[i];
b[i]=tem;
}
}

intsc(doubleb[])
{
doublep;
inti;
p=pj(b);
printf("平均數是%lf ",p);
px(b);
printf("排序:");
for(i=0;i<10;i++)
printf("%lf ",b[i]);
}

Ⅵ 用c語言怎麼樣按總成績降序排序後顯示學生的數據

冒泡和選擇排序兩種比較簡單
舉個例子 冒泡
數據在數組score[N]中
for (i=0;i<N;i++}
{
for (j=0;j<N-1;j++)
{
if (score[j]<score[j+1])
{
int temp;
temp=score[j];
score[j]=score[j+1];
score[j+1]=temp;
}
}
}
這樣數據就從大到小排好了 然後使用循環輸出學生數據就可以了

Ⅶ 這個c語言函數能不能改成排序後輸出前十名成績

信息輸出在最後那個函數里吧,要改也是改那個,OutputInformation();這函數里邊寫的應該是信息輸出吧,你把這些排序的發上來也沒用啊,

Ⅷ 用c語言冒泡排序方法,對學生成績從高到低進行排序。 拜託大神們幫忙

#include <stdio.h>
void bubble_sort(int a[], int n)
{int i, j, temp;
for (j = 0; j < n - 1; j++)
for (i = 0; i < n - 1 - j; i++)
if(a[i] > a[i + 1])
{temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;}
}

int main()
{int number[10] = {95, 45, 15, 78, 84, 51, 24, 12, 38, 97};
int i,SIZE=10;
bubble_sort(number, SIZE);
for (i = 0; i < SIZE; i++)
printf("%d", number[i]);
printf("\n");
return 0;
}

Ⅸ C語言 學生成績排序

你說的序號是指學號嗎?要和姓名一一對應?

Ⅹ C語言編程程序,成績排序並求最高低分

最簡單的冒泡法:
float StudentMark[20];//20學生成績
//賦值過程省略
float Temp;//中間變數
for(int i=0;i<20-1;i++) //冒泡法
for(int j=1;j<20-i;j++)
{
if(StudentMark[j]<StudentMark[j-1})
Temp=StudentMark[j-1]; //交換數據
StudentMark[j-1]=StudentMark[j];
StudentMark[j]=Temp;
}