C語(yǔ)言實(shí)現(xiàn)輸出平均成績(jī)最高學(xué)生的信息
列:
有n個(gè)結(jié)構(gòu)體變量,內(nèi)含學(xué)生的學(xué)號(hào),學(xué)號(hào),和三門成績(jī)。要求輸出平均成績(jī)最高學(xué)生的信息(包括學(xué)號(hào)、姓名、三門課程成績(jī)和平均成績(jī))
解題思路:
將n個(gè)學(xué)生的數(shù)據(jù)表示為結(jié)構(gòu)體數(shù)組(有n個(gè)元素)。按照功能函數(shù)化的思想,小林分別用3個(gè)函數(shù)來(lái)實(shí)現(xiàn)不同的功能。
源代碼演示:
#include<stdio.h>//頭文件
#define N 3//宏定義
struct student //學(xué)生類結(jié)構(gòu)體
{
int num; //學(xué)號(hào)
char name[20];//姓名
float score[3];//成績(jī)
float aver;//平均分
} ;
int main() //主函數(shù)
{
void input(struct student s[]);//函數(shù)聲明
struct student max(struct student s[]);//函數(shù)聲明
void print(struct student s);//函數(shù)聲明
struct student s[N],*p=s;//定義結(jié)構(gòu)體變量
input (p);//調(diào)用函數(shù)
print(max(p));//打印調(diào)用max函數(shù)結(jié)果
return 0;//主函數(shù)返回值為0
}
void input(struct student s[])//自定義輸入函數(shù)
{
int i;//定義整型變量
printf("請(qǐng)輸入各學(xué)生的信息:學(xué)號(hào)、姓名、三門課成績(jī):\n");//提示語(yǔ)句
for(i=0;i<N;i++)//循環(huán)N次
{
scanf("%d %s %f %f %f",&s[i].num,&s[i].name,&s[i].score[0],&s[i].score[1],&s[i].score[2]);//輸入信息
s[i].aver=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3;//求平均值
}
}
struct student max(struct student s[])//自定義求最大值
{
int i,m=0;//定義整型變量
for(i=0;i<N;i++)//循環(huán)N次
{
if(s[i].aver>s[m].aver)//把平均分大的i賦值給m
{
m=i;
}
}
return s[m];//將s[m]結(jié)果返回到函數(shù)調(diào)用處
}
void print (struct student stud)//自定義打印函數(shù)
{
printf("\n成績(jī)最高的學(xué)生是:\n");//提示語(yǔ)句
printf("學(xué)號(hào);%d\n姓名;%s\n三門課成績(jī):%5.1f,%5.1f,%5.1f\n平均成績(jī):%6.2f\n",
stud.num,stud.name,stud.score[0],stud.score[1],stud.score[2],stud.aver);//輸出結(jié)果
}
編譯運(yùn)行結(jié)果如下:
請(qǐng)輸入各學(xué)生的信息:學(xué)號(hào)、姓名、三門課成績(jī):
10010 Tom 100 90 80
10011 Jon 80 70 100
10012 Kim 100 90 95成績(jī)最高的學(xué)生是:
學(xué)號(hào);10012
姓名;Kim
三門課成績(jī):100.0, 90.0, 95.0
平均成績(jī): 95.00--------------------------------
Process exited after 44.45 seconds with return value 0
請(qǐng)按任意鍵繼續(xù). . .
到此這篇關(guān)于C語(yǔ)言實(shí)現(xiàn)輸出平均成績(jī)最高學(xué)生的信息的文章就介紹到這了,更多相關(guān)C語(yǔ)言輸出平均成績(jī)最高學(xué)生的信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
實(shí)現(xiàn)Dijkstra算法最短路徑問(wèn)題詳解
這篇文章主要介紹了實(shí)現(xiàn)Dijkstra算法最短路徑問(wèn)題詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
基于matlab對(duì)比度和結(jié)構(gòu)提取的多模態(tài)解剖圖像融合實(shí)現(xiàn)
這篇文章主要介紹了多模態(tài)醫(yī)學(xué)圖像配準(zhǔn)與融合的概念、方法及意義,最后簡(jiǎn)單介紹了小波變換分析方法。感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2021-11-11
C語(yǔ)言實(shí)現(xiàn)電話簿項(xiàng)目
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)電話簿項(xiàng)目,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
深入linux下遍歷目錄樹(shù)的方法總結(jié)分析
本篇文章是對(duì)linux下遍歷目錄樹(shù)的方法進(jìn)行了詳細(xì)的總結(jié)與分析,需要的朋友參考下2013-05-05
C++算術(shù)運(yùn)算符與類型轉(zhuǎn)換
這篇文章主要介紹了C++算術(shù)運(yùn)算符與類型轉(zhuǎn)換,C++當(dāng)中提供5種基礎(chǔ)的算術(shù)運(yùn)算符,分別是加法、減法、乘法、除法和取模。下main我們就一起來(lái)看看下面文章得具體舉例與說(shuō)明,需要的朋友可以參考一下,希望對(duì)你有所幫助2021-11-11
C++聚合關(guān)系類的構(gòu)造函數(shù)的調(diào)用順序詳解
下面小編就為大家?guī)?lái)一篇C++聚合關(guān)系類的構(gòu)造函數(shù)的調(diào)用順序詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧2016-05-05
C++ 十進(jìn)制轉(zhuǎn)換為二進(jìn)制的實(shí)例代碼
這篇文章介紹了C++ 十進(jìn)制轉(zhuǎn)換為二進(jìn)制的實(shí)例代碼,有需要的朋友可以參考一下2013-10-10

