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

c語言編程平均分排名

發布時間: 2023-07-02 14:20:36

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&lt;stdio.h&gt;

void main()

{

float a[10][10];//用來存放10名學生的5門成績,最後一位用於存放平均成績

int i,j;

float sum=0.0;

for(i=0;i&lt;10;i++)

{

printf("請輸入第%d個學生的5門成績",i+1);

for(j=0;j&lt;5;j++)

{

scanf("%f",&a&lt;i&gt;[j]);

sum=sum+a&lt;i&gt;[j];

}

a&lt;i&gt;[10]=sum/5.0;

}

printf("10名學生的成績及平均分 ");

for(i=0;i&lt;10;i++)

{

for(j=0;j&lt;10;j++)

printf("%.3f",a&lt;i&gt;[j]);

printf(" ");

}

}

(2)c語言編程平均分排名擴展閱讀:

printf的用法

格式

printf函數的原型為:

#include&lt;stdio.h&gt;

int printf(const char*format,...);

在講每一個函數的時候都會先把它的函數原型寫出來,這個原型你們現在看不懂不要緊,等到學完C語言之後再來看這個原型就會發現它是很有參考意義的!它對深刻理解函數有著很大的價值。

printf的格式有四種:

1)printf("字元串 ");

#include&lt;stdio.h&gt;

int main(void)

{

printf("Hello World! ");// 表示換行

return 0;

}

其中 表示換行的意思。它是一個轉義字元,前面在講字元常量的時候見過。其中n是「new line」的縮寫,即「新的一行」。

此外需要注意的是,printf中的雙引號和後面的分號必須是在英文輸入法下。雙引號內的字元串可以是英文,也可以是中文。

2)printf("輸出控制符",輸出參數);

純文本復制

#include&lt;stdio.h&gt;

int main(void)

{

int i=10;

printf("%d ",i);/*%d是輸出控制符,d表示十進制,後面的i是輸出參數*/

return 0;

}

C. c語言讀入7個選手的編號與得分,要求輸出優秀率及格率,平均分,輸出排行榜

#include <stdio.h>
typedef struct
{
int number;
int score;
}player;

float average(player play[7])
{
int i;
float sum = 0;
for (i = 0; i < 7; i++)
{
sum += play[i].score;
}
return sum/7;
}

void calc(player play[7], float *good, float *well)
{
int i,j=0,k=0;
for (i = 0; i < 7; i++)
{
if (play[i].score >= 90)
{
j++;
k++;
}
else if (play[i].score >=60)
{
k++;
}
}
*good = (float)j/7;
*well = (float)k/7;
}

void rank(player play[7])//排序,冒泡
{

int i,j;
int tmp,tmpnum;
for (i = 0; i < 7; i++)
{
for (j = 0; j < 6-i; j++)
{
if (play[j].score < play[j+1].score)
{
tmp = play[j].score;
tmpnum = play[j].number;
play[j].score = play[j+1].score;
play[j].number = play[j+1].number;
play[j+1].score = tmp;
play[j+1].number = tmpnum;
}
}
}

printf("\n排行:\n");
for (i= 0; i < 7; i++)
{
printf("%d %d\n", play[i].number, play[i].score);
}
}

void main()
{
player play[7];
int i;
float good,well;

for (i = 0; i < 7; i++)
{
printf("輸入選手編號:");
scanf("%d", &play[i].number);
printf("輸入選手%d的得分:", play[i].number);
scanf("%d",&play[i].score);
}

calc(play, &good, &well);
printf("優秀率為:%f\n", good);
printf("及格率為:%f\n", well);
printf("平均分為:%f\n", average(play));
rank(play);
}

D. 請問這個C程序怎麼寫輸入30個學生5門課程的成績,按照每個學生的平均分由高到低排序。

#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "windows.h"
#include "string.h"

void Error();
void Input();
void Find();
void Output();
void Paixu();

struct node
{
int code;
char name[20];
char sex[3];
int age;
int chinese,english,computer,math,total;
float average;

};

struct node student[100],temp,New;

void MainMenu()
{
int cho;

printf("\n\t學員信息管理系統\n");
printf("*******************************\n");
printf("=\t【1】輸入數據 =\n");
printf("=\t【2】查找數據 =\n");
printf("=\t【3】輸出數據 =\n");
printf("=\t【4】排序數據 =\n");
printf("=\t【5】退出 =\n");
printf("*******************************\n");

printf("\n請輸入你的選擇(1-5):");
scanf("%d",&cho);

switch(cho)
{
case 1:
system("cls");
Input();
break;
case 2:Find();break;
case 3:Output();break;
case 4:Paixu();break;
case 5:exit(0);break;
default:Error();break;
}

}

void Paixu()//排序數據
{
int i,j;
//按平均分數的高低排序
for(i=0;i<=3;i++)
{
for(j=i+1;j<=4;j++)
{
if(student[i].average<student[j].average)
{
temp=student[i];
student[i]=student[j];
student[j]=temp;
}
}
}
printf("數據按平均分高低排列的情況如下:\n");
Output();
}

void Output()//輸出數據
{
int i;
system("cls");

printf("數據的情況如下:\n");
for(i=0;i<=4;i++)
{
//輸出每個成員變數的值
printf("\n******************************\n");
printf("\t學號:%d\n",student[i].code);
printf("\t姓名:%s\n",student[i].name);
printf("\t年齡:%d\n",student[i].age);
printf("\t英文成績:%d\n",student[i].english);
printf("\t國文成績:%d\n",student[i].chinese);
printf("\t計算機成績:%d\n",student[i].computer);
printf("\t數學成績:%d\n",student[i].math);
printf("\t總成績:%d\n",student[i].total);
printf("\t平均成績:%.2f\n",student[i].average);
}
printf("\n按任意鍵返回主界面......");
fflush(stdin);
getch();
system("cls");
MainMenu();
}

void Find()//查找數據
{
int n,m,i;
char ch,k[20];

system("cls");
lab1:printf("按學號查找(按1):\n");
printf("按姓名查找(按2):\n");
printf("請選擇:");
scanf("%d",&n);

switch(n)
{
case 1:
printf("請輸入學號:");
scanf("%d",&m);
if(m=student[i].code)
{
printf("******************************\n");
printf("\t學號:%d\n",student[i].code);
printf("\t姓名:%s\n",student[i].name);
printf("\t年齡:%d\n",student[i].age);
printf("\t英文成績:%d\n",student[i].english);
printf("\t國文成績:%d\n",student[i].chinese);
printf("\t計算機成績:%d\n",student[i].computer);
printf("\t數學成績:%d\n",student[i].math);
printf("\t總成績:%d\n",student[i].total);
printf("\t平均成績:%.2f\n",student[i].average);
printf("******************************\n");
}
break;
case 2:
printf("請輸入姓名:");
scanf("%s",&k);
if(strcmp(k,student[i].name==0))
{
printf("******************************\n");
printf("\t學號:%d\n",student[i].code);
printf("\t姓名:%s\n",student[i].name);
printf("\t年齡:%d\n",student[i].age);
printf("\t英文成績:%d\n",student[i].english);
printf("\t國文成績:%d\n",student[i].chinese);
printf("\t計算機成績:%d\n",student[i].computer);
printf("\t數學成績:%d\n",student[i].math);
printf("\t總成績:%d\n",student[i].total);
printf("\t平均成績:%.2f\n",student[i].average);
printf("******************************\n");
}
break;
default:
printf("該選擇有誤,選擇只有(1或2),重新選擇:");
goto lab1;
break;
}
printf("\n是否繼續查找(y/n):");
lab2:fflush(stdin);
ch=getchar();
if(ch=='y'||ch=='Y')
{
system("cls");
goto lab1;
}
else if(ch=='n'||ch=='N')
{
printf("謝謝你的使用!\n");
}
else
{
printf("\n只許輸入y/n字元,重輸:");
goto lab2;
}

printf("\n按任意鍵返回主界面......");
fflush(stdin);
getch();
system("cls");
MainMenu();

}

void Input()//插入數據
{
int i;

for(i=0;i<=4;i++)
{
printf("\n請輸入第%d位學員的學號:",i+1);
scanf("%d",&student[i].code);
fflush(stdin);

printf("請輸入第%d位學員的姓名:",i+1);
gets(student[i].name);
fflush(stdin);

printf("請輸入第%d位學員的性別:",i+1);
gets(student[i].sex);
fflush(stdin);

printf("請輸入第%d位學員的年齡:",i+1);
scanf("%d",&student[i].age);
fflush(stdin);

printf("請輸入第%d位學員的英文成績:",i+1);
scanf("%d",&student[i].english);

printf("請輸入第%d位學員的國文成績:",i+1);
scanf("%d",&student[i].chinese);

printf("請輸入第%d位學員的計算機成績:",i+1);
scanf("%d",&student[i].computer);

printf("請輸入第%d位學員的數學成績:",i+1);
scanf("%d",&student[i].math);

student[i].total=student[i].english+student[i].chinese+student[i].computer+student[i].math;
student[i].average=(float)student[i].total/4;
printf("第%d位學員的總成績為:%d\n",i+1,student[i].total);
printf("第%d位學員的平均成績為:%.2f\n",i+1,student[i].average);

}

printf("\n按任意鍵返回主界面......");
fflush(stdin);
getch();
system("cls");
MainMenu();

}

void Error()
{
printf("\n輸入錯誤,請輸入(1-7)的整數:");
printf("\n按任意鍵結束......");
fflush(stdin);
getch();
system("cls");
MainMenu();
}

void main()
{
printf("\n\n\t\t*歡迎使用信息管理系統*");
printf("\n\t\t按任意鍵繼續......");
fflush(stdin);
getch();
system("cls");

MainMenu();
}