c语言——结构体数组——学生成绩表
生活随笔
收集整理的這篇文章主要介紹了
c语言——结构体数组——学生成绩表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?例題詳解:
1.
在主函數中定義結構體數組,struct student stutable[10];
struct student {int stunum;//學號char name[20];//姓名float examscore;//考試成績float labscore;//實驗成績float totalmark;//總評成績 };輸入如下十個學生的成績數據,每個學生信息包括 學號 、姓名 、考試成績 ,實驗成績。同時計算每個學生的總評成績( =考試成績*60% + 實驗成績*40%)并保存至每個結構體的totalmark。
71250 張三 95 82 69753 李四 88 86 12254 王五 87 88 61256 張六 73 85 30258 孫七 25 88 11260 柯八 82 76 33262 謝九 91 85 29263 葉十 80 75 22483 陳一 80 76 71525 王二 71 882.
在主函數中定義一個結構體指針數組,struct student? *parrray[10] ; 使其每一個指針指向上述結構體數組中的一個元素; 按總評成績從高到低的順序,對指針數組parray進行排序,按總評成績從高到低的順序輸出排序之后的全部學生成績。
struct student *parray[10],*t; int main() {int i,j;struct student stutable[10],*p;struct student *parray[10],*t;for(p=stutable,i=0; p<stutable+10,i<10; p++,i++) {scanf("%d %s %f %f",&p->stunum,p->name,&p->examscore,&p->labscore);//輸入數據p->totalmark=p->examscore*0.6+p->labscore*0.4;//計算總評parray[i]=p;//指針數組初始化}//冒泡排序,比較總評,交換指針for(i=0; i<9; i++) {for(j=0; j<9-i; j++) {if(parray[j]->totalmark<parray[j+1]->totalmark) {t=parray[j];parray[j]=parray[j+1];parray[j+1]=t;}}}//排序for(i=0; i<10; i++) {printf("%d\t%s\t%.2f\t%.2f\t%.2f\n",parray[i]->stunum,parray[i]->name,parray[i]->examscore,parray[i]->labscore,parray[i]->totalmark);}//輸出信息 }輸入重定向結果:
總結
以上是生活随笔為你收集整理的c语言——结构体数组——学生成绩表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JESD204B 参数理解
- 下一篇: oracle—高级查询