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

c語言重回排名榜

發布時間: 2023-07-16 09:47:50

A. c語言成績排名次。

#include<stdio.h>
#include<stdlib.h>
typedefintunit;//可改為double型
intcmp(constvoid*a,constvoid*b)
{
unitA=*(unit*)a;
unitB=*(unit*)b;
if(A<B)return1;
if(A>B)return-1;
return0;
}
inti,j,k,m,n;
unit*data;
intmain()
{
scanf("%d",&n);//輸入人數
data=(unit*)malloc(n*sizeof(unit));
for(i=0;i<n;i++)
{
if(sizeof(unit)==sizeof(int))scanf("%d",&data[i]);
elseif(sizeof(unit)==sizeof(double))scanf("%lf",&data[i]);
}
qsort(data,n,sizeof(data[0]),cmp);
for(i=0;i<n;i++)
{
if(sizeof(unit)==sizeof(int))printf("%d",data[i]);
elseif(sizeof(unit)==sizeof(double))printf("%lf",data[i]);
}
}

從高到低排分數

B. 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. c語言中排名問題

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

#definestatusint

#defineNAME30/*各類名稱字數上限*/
#defineSTU100/*學生人數上限*/
#defineSUB10/*課程數上限*/

typedefstructrecord{
floatscore;/*成績分數*/
}record;

typedefstructstudent{
intid;/*索引性質的id*/
intno;/*學號*/
charname[NAME];/*姓名*/
recordscores[SUB];/*各門課成績分數*/
floattotalScore;/*總分*/
floataverageScore;/*平均分*/
intranking;/*名次*/
}student;

intsubNum=3;/*課程數*/
charsubject[SUB][NAME]={"數學","英語","計算機"};/*課程名稱*/


/**********************以下為函數聲明**********************/
intstuInfoEmpty(studentstu[],intstuNum);/*學生信息判空*/

statusinputStuInfo(studentstu[],intstuIndex,intsubNum);/*錄入單個學生信息*/
statusinputAllStuInfo(studentstu[],int*stuNum,intsubNum);/*錄入全部學生信息*/

statuscalcStuInfo(studentstu[],intstuIndex,intsubNum);/*計算處理單個學生信息*/
statuscalcAllStuInfo(studentstu[],intstuNum,intsubNum);/*計算處理全部學生信息*/

statusprintStuInfo(studentstu[],intstuIndex,intsubNum,intinclRanking);/*輸出單個學生信息*/
statusprintAllStuInfo(studentstu[],intstuNum,intsubNum,intinclRanking);/*輸出全部學生信息*/

statusdescSort(studentstu[],intstuNum,intsubNum);/*按總分降序排列並錄入名次*/

intgetCommand(void);/*輸入命令編號*/
statusprintMeunText(void);/*列印菜單文本*/
statusrunMeun(studentstu[],intstuNum,intsubNum);/*調出菜單*/
/**********************以上為函數聲明**********************/


intmain(void){
studentstu[STU]={-1};/*學生結構體數組*/
intstuNum;
inti;

runMeun(stu,stuNum,subNum);

return0;
}

/*學生信息判空*/
/*為空返回1;不空返回0*/
intstuInfoEmpty(studentstu[],intstuNum){
inti;

if(stuNum==0)
return1;
for(i=0;i<stuNum;i++)
if(stu[i].id==-1)
return1;
return0;
}

/*錄入單個學生信息*/
statusinputStuInfo(studentstu[],intstuIndex,intsubNum){
inti;

scanf("%d",&stu[stuIndex].no);/*學號*/
if(stu[stuIndex].no==-1){/*學號錄入-1以結束*/
stu[stuIndex].id=-1;
return-1;/*本次未錄入*/
}

scanf("%s",&stu[stuIndex].name);/*姓名*/

for(i=0;i<subNum;i++){
scanf("%f",&stu[stuIndex].scores[i].score);
}/*各門課成績分數*/

for(i=0;i<subNum;i++)
if(stu[stuIndex].scores[i].score>100||stu[stuIndex].scores[i].score<0)
return0;/*本次錄入錯誤*/

return1;/*本次錄入成功*/
}

/*錄入全部學生信息*/
statusinputAllStuInfo(studentstu[],int*stuNum,intsubNum){
inti,inputStatus,count;

puts("======================================================");
puts("錄入學生信息");
puts("======================================================");
putchar(' ');

if(*stuNum!=0){
printf("已有%d名學生信息! ",*stuNum);
putchar(' ');
puts("繼續錄入以新增(學號錄入-1以結束)↓↓");
putchar(' ');
}
else{
puts("請錄入學生信息(學號錄入-1以結束)↓↓");
putchar(' ');
}

/*錄入信息之表頭*/
puts("------------------------------------------------------");
printf(" 學號 姓名 ");
for(i=0;i<subNum;i++)
printf("%s ",subject[i]);
putchar(' ');
puts("------------------------------------------------------");

/*錄入信息*/
count=0;
i=*stuNum;
while(1){
printf("第%d名學生 ",i+1);
stu[i].id=i+1;
inputStatus=inputStuInfo(stu,i,subNum);
if(inputStatus==1){
i++;
count++;
}
elseif(inputStatus==0){
putchar(' ');
puts("成績輸入錯誤!請重新輸入↓");
continue;
}
elseif(inputStatus==-1)
break;
}
*stuNum+=count;
puts("------------------------------------------------------");
putchar(' ');

putchar(' ');
if(count!=0)
printf("本次%d名學生信息錄入完畢!即將返回主菜單。 ",count);
else
printf("您本次未輸入學生信息!即將返回主菜單。 ");
putchar(' ');
puts("按任意鍵繼續...");
putchar(' ');
fflush(stdin);
getch();
return1;
}

/*計算處理單個學生信息*/
statuscalcStuInfo(studentstu[],intstuIndex,intsubNum){
inti;

stu[stuIndex].totalScore=stu[stuIndex].averageScore=0;

/*計算總分*/
for(i=0;i<subNum;i++){
stu[stuIndex].totalScore+=stu[stuIndex].scores[i].score;
}
stu[stuIndex].averageScore=stu[stuIndex].totalScore/subNum;/*計算平均分*/

return1;
}

/*計算處理全部學生信息*/
statuscalcAllStuInfo(studentstu[],intstuNum,intsubNum){
inti;

/*計算總分、平均分等*/
for(i=0;i<stuNum;i++)
calcStuInfo(stu,i,subNum);

return1;
}

/*輸出單個學生信息*/
statusprintStuInfo(studentstu[],intstuIndex,intsubNum,intinclRanking){
inti;

if(inclRanking)
printf("%d ",stu[stuIndex].ranking);/*名次*/
printf("%d ",stu[stuIndex].no);/*學號*/
printf("%s ",stu[stuIndex].name);/*姓名*/
for(i=0;i<subNum;i++)/*各門課成績分數*/
printf("%.2f ",stu[stuIndex].scores[i].score);
printf("%.2f ",stu[stuIndex].totalScore);/*總分*/
printf("%.2f ",stu[stuIndex].averageScore);/*平均分*/
putchar(' ');

return1;
}

/*輸出全部學生信息*/
statusprintAllStuInfo(studentstu[],intstuNum,intsubNum,intinclRanking){
inti;

if(stuInfoEmpty(stu,stuNum)){
puts("尚未錄入學生信息!即將返回主菜單。");
putchar(' ');
puts("按任意鍵繼續...");
putchar(' ');
fflush(stdin);
getch();
return0;
}

puts("======================================================");
puts("全部學生信息");
puts("======================================================");
putchar(' ');

if(inclRanking)
printf("%d名學生信息如下,按總分由高到低排列名次↓↓ ",stuNum);
else
printf("%d名學生信息如下↓↓ ",stuNum);
putchar(' ');

/*輸出信息之表頭*/
puts("------------------------------------------------------");
if(inclRanking)
printf("名次 ");
printf("學號 ");
printf("姓名 ");
for(i=0;i<subNum;i++)
printf("%s ",subject[i]);
printf("總分 ");
printf("平均分 ");
putchar(' ');
puts("------------------------------------------------------");

/*輸出信息*/
for(i=0;i<stuNum;i++)
printStuInfo(stu,i,subNum,inclRanking);
puts("------------------------------------------------------");
putchar(' ');

putchar(' ');
puts("學生信息輸出完畢!即將返回主菜單。");
putchar(' ');
puts("按任意鍵繼續...");
putchar(' ');
fflush(stdin);
getch();
return1;
}

/*按總分降序排序、錄入名次並輸出*/
statusdescSort(studentstu[],intstuNum,intsubNum){
inti,j;
studenttemp;

if(stuInfoEmpty(stu,stuNum))
return0;

/*按總分降序*/
for(i=0;i<stuNum-1;i++)
for(j=0;j<stuNum-1-i;j++)
if(stu[j].totalScore<stu[j+1].totalScore){
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}

/*錄入名次*/
for(i=0;i<stuNum;i++)
stu[i].ranking=i+1;

return1;
}

/*輸入命令編號*/
intgetCommand(void){
intkey;/*命令編號*/

printf("請輸入命令編號以開啟操作:");
scanf("%d",&key);

returnkey;
}

/*列印菜單文本*/
statusprintMeunText(void){
puts("======================================================");
puts("學生信息管理");
puts("------------------------------------------------------");
printf("%4c 功能詳情 ",'#');
puts("------------------------------------------------------");
printf("%4d 輸入學生信息 ",1);
printf("%4d 按成績由高到低排序 ",2);
printf("%4d 退出 ",7);
puts("======================================================");
putchar(' ');

return1;
}

statusrunMeun(studentstu[],intstuNum,intsubNum){
intkey;
do{
system("cls");/*清屏*/
printMeunText();/*列印菜單文本*/
key=getCommand();/*輸入命令編號*/
putchar(' ');
switch(key){
case1:system("cls");inputAllStuInfo(stu,&stuNum,subNum);calcAllStuInfo(stu,stuNum,subNum);break;
case2:system("cls");descSort(stu,stuNum,subNum);printAllStuInfo(stu,stuNum,subNum,1);break;
case7:puts("程序結束! ");break;
default:puts("輸入錯誤,請重新輸入! 按任意鍵繼續...");getch();break;
}
}while(key!=7);

getch();
return1;
}

運行結果

主菜單

D. 截止到2021年世界編程語言排行榜中C語言處在什麼位置

排名第三的位置。2021年世界編程語言C語言排行榜(java被python超越,位居第三)。