當前位置:首頁 » 編程語言 » c語言成績排序

c語言成績排序

發布時間: 2023-03-31 07:17:18

⑴ 用c語言編程:從鍵盤輸入10個學生的成績,由高到低排序輸出成績

你好,我們這里需要用到數組鑲套使用for函數以及冒泡演算法,具體的代碼如下。

#include <iostream>

using namespace std;

int main()

{

int s [10], i, j, t;

cout << "輸入10個數:";

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

{

cout << "請輸入第" << i+1 << "名學生的成績;" << endl;

cin >> s[i];

}

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

{

for (j = 0; j<9 - i; j++)

if (s[j]<s[j + 1])

{

t = s[j + 1];

s[j + 1] = s[j];

s[j] = t;

}

}

cout << "成績由高到低為;";

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

cout << s[i]<<" " ;

}

以下為效果圖

⑵ 成績排序c語言數組

#include <stdio.h>
int main()
{ int n,i,j,t,a[1000];
scanf("%d",&n); //有n個學殲圓派生
for(i=0; i<n; i++)
scanf("%d",&a[i]);
for(i=0; i<n-1; i++) //共氏賀進行n-1輪
{ for(j=0; j<n-1-i; j++) //j的范腔態圍:0~n-1-i
if(a[j]<a[j+1]) //比較相鄰兩數:a[j]、a[j+1],如不對就交換
{ t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0; i<n; i++)printf("%4d",a[i]);
printf("\n");
return 0;
}

⑶ C語言怎麼進行成績的排序

#include<stdio.h>
int main()
{
int a[10],i,j,t,k;
printf("請以次輸入10個學生的成績:");
for(i=0;i<10;i++)scanf("%d",&a[i]);
for(i=0;i<9;i++)
{
k=i;
for(j=i;j<10;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<10;i++)
printf("%d\n",a[i]);
return 0;
}

⑷ 用C語言編程:從鍵盤輸入10個學生的成績,由高到低排序輸出成績

這題可以利大枯孝用冒泡排序法
題目不難

#include <stdio.h>

#define SIZE 11

void bubble_sort(int a[], int n);

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[SIZE] = {0};

int i;

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

scanf("%d",&number[i]);

bubble_sort(number, SIZE);

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

{ printf("%d ", number[i]); }

return 0;

}

運行過程

除了冒泡排序法,還有選擇排序法,快速排滾稿序法,還請題主在大學好好學習哦

⑸ c語言 學生成績排名

#include<stdio.h>
voidsetList(int*a,intlen);
voidprintfList(int*a,intlen);
voidpxList(int*a,intlen);
voidinsertList(int*a,intlen);
voidfanList(int*a,intlen);
intmain()
{
inta[11];//1.定義一個數組a[11],用以存放學生的成績。
setList(a,10);//2.從鍵盤輸入10個學生成績。
pxList(a,10);//3.採用選擇法,將學生成績按照從高到低進行排序。
printfList(a,10);
insertList(a,10);//4.再輸入一個學生的成績,將此成績按照排序規律插入原學生成績數組。
printfList(a,11);
fanList(a,11);//5.將排好序的成績單進行反序存放,即原來是從高到低,現在改為從低到高排列
printfList(a,11);
return0;
}
voidsetList(int*a,intlen)//輸入
{
inti;
printf("請輸入%d個學生成績 ",len);
for(i=0;i<len;i++)
scanf("%d",&a[i]);
}
voidprintfList(int*a,intlen)//列印數組
{
inti;
printf(" ---列印數組--- ");
for(i=0;i<len;i++)
printf("%d",a[i]);

}
voidpxList(int*a,intlen)//選擇排序
{
inti,j;
printf(" ---從大到小排序--- ");
for(i=0;i<len-1;i++)
for(j=i+1;j<len;j++)
if(a[i]<a[j])
{
a[j]^=a[i];
a[i]^=a[j];
a[j]^=a[i];
}
}
voidinsertList(int*a,intlen)//插入數組
{
printf(" ---插入數組--- ");
printf("輸入要插入的數:");
scanf("%d",&a[len]);
pxList(a,11);
}
voidfanList(int*a,intlen)//數組反向存儲
{
int*p0,*p1;
p0=a;
p1=&a[len-1];
while(p0<p1)
{
*p0^=*p1;
*p1^=*p0;
*p0^=*p1;
p0++;
p1--;
}

}

⑹ C語言 學生成績排序 按學生的序號輸入 n 名學生的成績,按照分數由高到低的順序輸出學生的名次、序號和成績

#include<stdio.h>
#include<malloc.h>
typedefstructstudent
{
intid;
intscore;
structstudent*next;
}STU;
intstuIndex;

voidinputStuInfo(STU*stuHead);//輸入學生信息
voidorderStuInfo(STU*stuHead);//按照分數高到低順序重組鏈表
voidprintStuInfo(STU*stuHead,intflag);//列印學生信息。參數flag=0:正常列印鏈表信息。flag!=0:列印排序後的名次信息
intmain()
{
STU*stuHead=(STU*)malloc(sizeof(STU));
stuHead->next=NULL;
stuIndex=1;
inputStuInfo(stuHead);
printf("--列印原始輸入的鏈表!-- ");
printStuInfo(stuHead,0);
printf("--開始按分數降序排列!-- ");
orderStuInfo(stuHead);
printf("--鏈表按降序重組完成!-- ");
printf("--列印降序排序的鏈表!-- ");
printStuInfo(stuHead,1);
return0;
}
voidorderStuInfo(STU*stuHead)
{
STU*stuSave1=NULL,*stuSave2=NULL,stuSave3;
stuSave1=stuHead;
while(stuSave1->next!=NULL)//冒泡排序
{
stuSave2=stuSave1->next;
while(stuSave2->next!=NULL)
{
if(stuSave1->next->score<stuSave2->next->score)//交換成員值,保留原鏈表指針值
{
stuSave3=*(stuSave1->next);
stuSave1->next->id=stuSave2->next->id;
stuSave1->next->score=stuSave2->next->score;
stuSave2->next->id=stuSave3.id;
stuSave2->next->score=stuSave3.score;
}
stuSave2=stuSave2->next;
}
stuSave1=stuSave1->next;
}
}
voidprintStuInfo(STU*stuHead,intflag)
{
inti=1;
while(stuHead->next!=NULL)
{
if(flag==0)
printf("學生%d,成績%d ",stuHead->next->id,stuHead->next->score);
else
printf("第%d名,學生%d,成績%d ",i++,stuHead->next->id,stuHead->next->score);
stuHead=stuHead->next;
}
}
voidinputStuInfo(STU*stuHead)
{
intscore;
STU*stuNew=NULL,*stuTail=NULL;
while(1)
{
printf("輸入學生%d的成績:(輸入負數結束輸入)",stuIndex);
scanf("%d",&score);
if(score<0)
break;
stuNew=(STU*)malloc(sizeof(STU));
stuNew->score=score;
stuNew->id=stuIndex;
stuNew->next=NULL;
if(stuHead->next==NULL)
stuHead->next=stuNew;
else
stuTail->next=stuNew;
stuTail=stuNew;
stuIndex++;
}
}

⑺ 編寫程式輸出十個同學C語言成績,並從大到小排序

編寫程式輸出十個同學C語言成績,並從大到小排序
#include<stdio.h>int main(){ double a[10]; int i,j; double tem; bool bchange = false; printf("請輸入10位同學的C語言成績,用空格隔開:\n"); for(i = 0;i<10;i++) { scanf("%lf",&a[i]); } Bubble for(i=1;i<10;i++) { bchange = false; for(j=0;j<10-i;j++) { if(a[j]<a[j+1]) { tem = a[j]; a[j] = a[j+1]; a[j+1] = tem; bchange = true; } } if(!bchange)not change break; } printf("10位同學的C語言成績由高到低是:\n"); for(i = 0;i<10;i++) { printf("%5.1lf",a[i]); } printf("枯春\n"); return 0;}

# include<stdio.h>
void main()
{
float a[10],k;
int i,j;
for(i=0;i<=9;i++)
scanf("%f",&a[i]);
for(i=0;i<=9;i++)
for(j=i+1;j<=9;j++)
if (a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
for(i=0;i<=9;i++)
printf("%f ",a[i]);
}
用C語言編寫「給十個數從大到小排序」
氣泡排序法:
void rank1(int a[],int n)
{int i,j,t;
for (i=0;i<n-1;i++)
{
for(j=n-1;j>i;j--)
if (a[j-1]>a[j]) {t=a[j-1];a[j-1]=a[j];a[j]=t;}
};
}
優化後的程式:
void rank1(int a[],int n)
{int i,j,t,flag;
for (i=0;i<n-1;i++)
{flag=0;
for(j=n-1;j>i;j--)
if (a[j-1]>a[j]) {t=a[j-1];a[j-1]=a[j];a[j]=t;flag=1;}
if (flag==0) break;
}
}
求解,用C語言編寫一個程式,隨機生成100個數,並從大到小排序

#include "stdafx.h"vc++6.0加上這一行.#include "stdio.h"春敗圓#include "time.h"#include "stdlib.h"int main(void){ int nDec[100],i,j,k; srand((unsigned)time(NULL)); for(i=0;i<100;nDec[i++]=rand()); for(i=0;i<100;i++){ for(k=i,j=k+1;j<100;j++) if(nDec[k]<nDec[j]) k=j; if(i!=k){ j=nDec[i]; nDec[i]=nDec[k]; nDec[k]=j; } printf("%d ",nDec[i]); } printf("扒塌\n"); return 0;}

C語言 編寫程式,從鍵盤輸入10個數據,按從大到小的順序輸出
main()
{
int a[10], i, j, k;
printf("輸入10個整數: ");
for (i = 0; i < 10; i++)
{
scanf("%d", a + i);
for (j = i; j > 0; j--)
if (a[j-1] >= a[j])
break;
else { k = a[j-1]; a[j-1] = a[j]; a[j] = k; }
}
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
}
c語言要求:編寫程式將十個元素的個數組a[10]從大到小列印輸出…
#include <stdio.h>
int main()
{
int a[10];
int i, j;
int t;
for (i = 0; i < 10; i++)
{
scanf("%d",&a[i]);
}
for (j = 0; j < 9; j++)
for(i = 0; i < 9 - j; i++)
if (a[i] > a[i+1])
{
t = a[i];
a[i] = a[i+1];
a[i+1] = t;
}
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
return 0;
}
c語言程式設計 輸入50個字元,按從大到小排序輸出
輸入一行字串,排序前50個,
#include<stdio.h>
#include<string.h>
int main()
{
char c;
int i,j;
char buf[50],temp;
printf("input 50 numbers\n");
for(i=0;i<50;i++)
{
if((c=getchar())==EOF)
{
printf("input err\n");
return -1;
}
buf[i]=c;
}
for(i=0;i<49;i++)
{
for(j=0;j<49-i;j++)
{
if(buf[j]<buf[j+1])
{
temp=buf[j];
buf[j]=buf[j+1];
buf[j+1]=temp;
}
}
}
for(i=0;i<50;i++)
putchar(buf[i]);
printf("\n");
return 0;
}

氣泡排序,選擇排序,快速排序
c語言編寫,計算一矩陣的特徵值,按從大到小排序輸出。
#include<stdio.h>
int main()
{
int a[3][5],i,j,k,temp;
通過讀取給3×5的陣列賦值
for(i=0;i<3;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
一行一行的判斷
for(k=0;k<3;k++)
{
標准冒泡法
for (j = 0; j < 9; j++)
{
for (i = 0; i < 9 - j; i++)
{
if (a[k][i] < a[k][i + 1])
{
temp = a[k][i];
a[k][i] = a[k][i + 1];
a[k][i + 1] = temp;
}
}
}
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
}
c語言 (排序演演算法)隨機輸入10個整數,將其從大到小排序並輸出。

#include<stdio.h>void main(){ int i,a[10]; void paixu(int s[10],int n); printf("請輸入10個數:\n"); for(i=0;i<10;i++) { scanf("%d",&a[i]); } paixu(a,10); for(i=0;i<10;i++) printf("%d ",a[i] ); printf("\n");}void paixu(int s[10],int n){ int i,j,t=0; for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) { if(s[i]<s[j]) { t=s[i]; s[i]=s[j]; s[j]=t; } }}

⑻ c語言成績排序,做完微信紅包

#include"stdio.h"
#include<stdlib.h>
#include<string.h>
#include"time.h"
structabcd{
charID[11],name[17];
ints1,s2,s3,s4,s5;
doubleave;
structabcd*next;
};
voidinp(structabcd(*p)[45]){
inti,j,k,t;
char搜蔽id[11]="0000000000";
for(i=0;i<4;i++){
for(j=0;j<45;j++){
if(++id[9]>'9')
for(k=9;k>0;k--)
id[k]-=10,id[k-1]++;
strcpy(p[i][j].ID,id);
for(t=0,k=rand()%16;k;k--)
p[i][j].name[t++]=rand()%26+'A';
p[i][j].name[t]='';
p[i][j].s1=rand()%101;
p[i][j].s2=rand()%101;
p[i][j].s3=rand()%101;
p[i][j].s4=rand()%101;
p[i][j].s5=rand()%101;
}
}
}
voidaverage(structabcd(*p)[45]){
inti,j;
for(i=0;i<4;i++)
for(j=0;j<45;p[i][j].ave=(p[i][j++].s1+p[i][j].s2+p[i][j].s3+p[i][j].s4+p[i][j].s5)/5.0);
}
voidselsort(structabcd(*p)[45]){//4個班統一選擇排序
inti,j,k,t;
structabcdq;
for(t=0;t<4;t++)
for(i=0;i<45;i++){
for(k=i,j=k+1;j<45;j++)
if(p[t][k].ave<p[t][j].ave)
k=j;
if(k!=i)
q=p[t][k],p[t][k]=p[t][i],p[t][i]=q;
}
}
voidbubsort(structabcd(*p)[45]){//4個班統一冒泡排序
inti,j,t;
structabcdq;
for(t=0;t<4;t++)
for(i=0;i<45;i++)
for(j=0;j<44;j++)
if(p[t][j].ave<p[t][j+1].ave)
q=p[t][j],p[t][j]=p[t][j+1],p[t][j+1]=q;
}
voidgetlink(structabcd(*p)[45],structabcd*x){//弄成鏈表
inti,j,k,t;
structabcdq;
for(t=i=0;i<畝稿4;i++)//把4個班的成績拷貝到臨時數組x中
for(j=0;j<45;x[t++]=p[i][j++]);
for(i=0;i<t;i++){//對數組x降序排序
for(k=i,j=k+1;j<t;j++)
if(x[k].ave<x[j].ave)
k=j;
if(k!=i)
q=x[k],x[k]=x[i],x[i]=q;
}
for(i=1;i<t;x[i-1].next=x+i++);//把數組p搞成單鏈表
x[i-1].next=NULL;
}
intmain(intargc,char*argv[]){
structabcdc[4][45],t[4*45],*p;
intk;
srand((unsigned)time(NULL));
inp(c);
average(c);
bubsort(c);
selsort(c);//這是脫了褲子FP,無論用什麼方法排序結果是一樣的,不懂為何這么出題
getlink(c,t);
printf("----------Lookat...---------- ");
for(k=0,p=t;p;p=p->next)//將鏈表中的值輸出
printf(++k%15?"%5.1f":"%5.1f ",p->ave);
if(k%10)
printf(" ");
return0;
}

運行樣例:

這種題打字太世耐州多……

⑼ C語言利用數組實現輸入N名學生成績,有小到大進行排序,並計算平均分

這應該能滿足要求了:
#include <stdio.h>
void Sort(float* arr, int len) {
double temp;
int i , j;
for (i = 0; i < len - 1; i++) {
for (j = i + 1; j < len; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
float AvgGrade(float* arr,int len) {
int i = 0;
double result = 0;
for (; i < len; i++) {
result += arr[i];
}
return result;
}
int main() {
float arr[100], temp = 0;
int n, i;
n = 0;
printf("輸入學生的成績,可以連續輸入塵攔,直到櫻亂輸脊兄檔入一個小於0的數:\n");
scanf("%f", &temp);
while (temp >= 0) {
arr[n++] = temp;
scanf("%f", &temp);
}
printf("平均分為%f\n", AvgGrade(arr, n));
printf("排序後的分數為:\n");
Sort(arr, n);
for (i = 0; i < n; i++) {
printf("%f\t",arr[i]);
if ((i + 1) % 5 == 0)
printf("\n");
}
return 0;
}

⑽ 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等等)

熱點內容
瑞納自動買哪個配置 發布:2024-11-02 20:18:45 瀏覽:559
sql復制資料庫結構 發布:2024-11-02 20:18:43 瀏覽:582
yaf編譯 發布:2024-11-02 20:06:30 瀏覽:126
小數除以大數怎麼演算法 發布:2024-11-02 19:44:59 瀏覽:810
安卓手機如何重新設置付款密碼 發布:2024-11-02 19:31:44 瀏覽:980
多巴胺3mg靜脈注射怎麼配置 發布:2024-11-02 19:25:50 瀏覽:618
源碼之城 發布:2024-11-02 19:24:43 瀏覽:513
國軍標環境存儲要求 發布:2024-11-02 19:23:04 瀏覽:107
sql多行轉多列 發布:2024-11-02 19:17:52 瀏覽:119
linuxftp文件夾許可權 發布:2024-11-02 19:17:03 瀏覽:899