1. 程式人生 > 其它 >C語言 | 按成績高低輸出學生資訊

C語言 | 按成績高低輸出學生資訊

技術標籤:C語言案例原始碼c語言程式語言

例39:有n個學生的資訊(包括學號、姓名、成績),C語言程式設計實現按照成績的高低順序輸出學生的資訊。

解題思路:用結構體陣列存放n個學生資訊,採用選擇法對各元素進行排序,在定義結構體陣列時進行初始化,為清晰起見,將每個學生的資訊用一對花括號包起來。

原始碼演示:

#include<stdio.h>//標頭檔案 
struct student //學生結構體 
{
  int num; //學號 
  char name[20]; //姓名 
  float score; //成績 
} ;
int main()//主函式 
{
  //定義結構體變數且賦值 
  struct
student stu[5]={{10010,"Tom",78},{10011,"Jon",98.5},{10012,"Lisi",100},{10013,"zhangsan",99},{10014,"wangwu",10}}; struct student t; int i,j,k;//定義整型變數 printf("成績由大到小排序:\n");//提示語句 for(i=0;i<4;i++)//外層for迴圈 { k=i;//把i的值賦給k for(j=i+1;j<
5;j++)//內層for迴圈 { if(stu[j].score>stu[k].score)//挑出分數高的 { k=j;//把相應的j賦值給k } } t=stu[k]; //把成績高的放到前面 stu[k]=stu[i]; stu[i]=t; } for(i=0;i<5;i++)//迴圈輸出5個人的成績 { printf("%d,%10s,%6.2f分\n",stu[i].num,stu[i].name,stu[i].score);//輸出結果 } return
0;//主函式返回值為0 }

編譯執行結果如下:

成績由大到小排序:
10012, Lisi,100.0010013, zhangsan, 99.0010011, Jon, 98.5010010, Tom, 78.0010014, wangwu, 10.00--------------------------------
Process exited after 0.05481 seconds with return value 0
請按任意鍵繼續. . .

C語言按成績高低輸出學生資訊
更多案例可以go公眾號:C語言入門到精通