當前位置:股票大全官網 - 股票投資 - c語言` ` ` ` ` ` ``。

c語言` ` ` ` ` ` ``。

我這裏有壹個相關的例子。妳看,我也是剛學C。

問:寫壹個程序,完成壹個班學生考試成績的統計管理,包括成績輸入功能和成績顯示功能,計算每個學生的總分和平均分,並對成績進行排序和輸出。

代碼:

/*寫壹個程序,完成壹個班學生考試成績的統計管理,包括成績輸入功能和成績顯示功能。

並計算每個學生的總分和平均分,將結果進行排名並輸出。*/

# include & ltstdio.h & gt/*標準輸入輸出函數庫*/

# include & ltstring.h & gt/*字符串處理函數庫*/

# include & ltstdlib.h & gt/*整數和字符串轉換函數*/

#定義N 10 /*宏定義,將在第7章介紹。設置班級中的學生人數*/

/*學生考試成績統計管理主菜單*/

void main _ mun();

/*輸入學生的成績*/

void輸入();

/*顯示學生的成績*/

void輸出();

/*計算學生的平均成績*/

void平均值();

/*計算學生總分*/

void sum _ score();

/*對學生成績進行排名*/

void sort();

char student[n+1][12]= { "王菲","麗麗","劉宏","張瑋","陳雷","趙丹","羅賓漢","錢慧雲","孫楊","周政","。/*用於記錄學生姓名*/

浮動分數[N][4];/*用於記錄學生各科成績(數學、語文、英語、政治)*/

浮動平均值;/*用於記錄學生的平均成績*/

float sum _ sc[N];/*用於記錄學生的總成績*/

int sor[N];/*用於記錄每個學生的排名*/

int main()

{

int in/*輸入選擇被轉換成整數*/

int i,j;/*程序循環中使用的變量*/

字符選擇[6];/*用於主菜單選擇的字符*/

for(I = 0;我& ltn;I++) /*初始化學生成績*/

for(j = 0;j & lt4;j++)

score[I][j]= 0.00;

Printf("學生考試成績的統計管理\ n ");

main _ mun();

獲取(選擇);

while ((strcmp(select," q))!= 0)& amp;& amp(strcmp(select," Q ")!=0))

{

in=atoi(選擇);/*將輸入字符串轉換為整數*/

如果(在!= 0)

{

開關(輸入)

{

案例1:

{

input();

打破;

}

案例二:

{

output();

打破;

}

案例三:

{

平均值();

打破;

}

案例4:

{

sum _ score();

打破;

}

案例5:

{

sort();

打破;

}

默認值:

Printf("輸入了錯誤的選擇,請重新輸入!\ n ");

}

main _ mun();

}

獲取(選擇);

}

Printf("管理系統結束!!\ n ");

返回0;

}

/*學生考試成績統計管理主菜單*/

void main_mun()

{

Printf("1:輸入學生成績\ n ");

Printf("2:顯示學生成績\ n ");

Printf("3:計算學生的平均成績\ n ");

Printf("4:計算學生總分\ n ");

Printf("5:根據學生成績排名\ n ");

Printf("請輸入您的選擇:(q(Q)退出)\ n ");

}

/*輸入學生的成績*/

無效輸入()

{

浮動sc[4];/*輸入等級的中間變量*/

int數;/*表示學生編號*/

int flag = 0;/*輸入分數是否錯誤的標記*/

int I;/*循環控制變量*/

Printf("輸入學生成績:\ n ");

Printf("輸入學號:\ n ");

scanf("%d ",& amp號);

while((number & lt;0)||(數字& gtn))

{

Printf("輸入了錯誤的學號!!!。\ n ");

返回;

}

Printf("輸入學生%s \n的年級",學生[編號]);

Printf("數學、語文、英語、政治\ n ");

scanf("%f%f%f%f ",& ampsc[0],& ampsc[1]、sc[2],& ampsc[3]);

getchar();

/*判斷分數輸入是否出格*/

for(I = 0;我& lt4;i++)

if((sc[I]& gt;100.00)| |(sc[I]& lt;0.00))

{

flag = 1;

Printf("輸入結果錯誤!!\ n ");

返回;

}

/*分數未超出界限後,賦值*/

for(I = 0;我& lt4;i++)

score[數字][I]= sc[I];

}

/*顯示學生的成績*/

無效輸出()

{

int I;/*循環控制變量*/

for(I = 0;我& ltn;i++)

{

Printf ("Output %s grades: \nMath,語文,英語,政治\n ",student[I]);

printf(" % . 2f % . 2f % . 2f % . \ n \ n ",score[i][0],score[i][1],score[i][2],score[I][3]);

}

}

/*計算學生的平均成績*/

無效平均值()

{

浮點sc = 0.00/*中間變量*/

int i,j;/*循環控制變量*/

for(j = 0;j & ltn;j++)

{

sc = 0.0

for(I = 0;我& lt4;i++)

sc+= score[j][I];

aver[j]= sc/4;

Printf("學生%s的平均成績為:%.2f\n ",student[j],aver[j]);

}

}

/*計算學生總分*/

void sum_score()

{

int i,j;/*循環控制變量*/

Printf("輸出學生總分:\ n ");

for(j = 0;j & ltn;j++)

{

sum _ sc[j]= 0;

for(I = 0;我& lt4;i++)

sum _ sc[j]+= score[j][I];

Printf("學生%s的總成績為:%.2f\n ",student[j],sum _ sc[j]);

}

}

/*對學生成績進行排名,以平均成績為例*/

void排序()

{

int i,j,temp,location/*循環控制變量*/

float max,sc;/*比較的中間變量*/

浮動平均值;

int標誌;/*標誌排序是否交換*/

int sor[N];/*記錄排序的位置*/

for(j = 0;j & ltn;j++)

{

sor[j]= j;

sc = 0.0

for(I = 0;我& lt4;i++)

sc+= score[j][I];

aver[j]= sc/4;

}

for(I = 0;我& ltn;I++) /*對學生的平均分進行排名*/

{

flag = 0;

max = aver[I];

位置= I;

for(j = I+1;j & ltn;j++)

{

if(aver[j]& gt;最大)

{

max = aver[j];

flag = 1;

位置= j;

}

}

if(flag==1)

{

aver[location]= aver[I];

aver[I]= max;

temp = sor[I];

sor[I]= sor[location];

sor[位置]= temp;

}

}

Printf("排序後的結果是:\ n ");

for(I = 0;我& ltn;i++)

{

printf(" the % d student number % d name % s ",(I+1),sor [I],student[sor[I]]);

printf("%f\n ",aver[I]);

}

}