課程
/后端開(kāi)發(fā)
/C
/C語(yǔ)言入門
幫我看一下這個(gè)程序用指針引用結(jié)構(gòu)怎么寫(xiě),謝謝啦
2015-12-05
源自:C語(yǔ)言入門 1-1
正在回答
我也是初學(xué)C語(yǔ)言,無(wú)聊就個(gè)你寫(xiě)一個(gè)吧
按照的你要求用了結(jié)構(gòu)體和指針
還帶的些輸入判斷結(jié)構(gòu),其實(shí)不搗亂的輸入是用不到,再學(xué)生時(shí)代不用考慮,但是出來(lái)真正做程序,就要考慮比較多
親,給個(gè)好評(píng)吧
#include?<stdio.h> #include?<windows.h> #include?<malloc.h> #define?CN?2?//課程數(shù) typedef?struct?Node { char name[11]; int sex; float score[CN]; Node *next; }stu;//學(xué)生結(jié)構(gòu)體成員 int?Intput(stu?*&L,?char?course[CN][15])//初始化并輸入學(xué)生信息 { int?num,?i?=?0,?cn?=?0; stu?*p,?*q?=?NULL; do { printf("請(qǐng)輸入學(xué)生人數(shù):\n"); fflush(stdin);//清除鍵盤緩沖區(qū) scanf("%6d",?&num); }?while?(num?<=?0); while?(i?<?num) { p?=?(stu?*)malloc(sizeof(stu)); if?(i) q->next?=?p; else L?=?p; p->next?=?NULL; printf("請(qǐng)輸入學(xué)生%d姓名:\n",?i?+?1); fflush(stdin); scanf("%10s",?&p->name);//讀取10個(gè)字符,10個(gè)留個(gè)'\0' do { printf("請(qǐng)輸入學(xué)生%d性別(男:1,女:0):\n",?i?+?1); fflush(stdin); scanf("%d",?&p->sex); }?while?(p->sex?!=?0?&&?p->sex?!=?1); for?(cn?=?0;?cn?<?CN;?cn++) { do { printf("請(qǐng)輸入學(xué)生%d的%s成績(jī):\n",?i?+?1,?course[cn]); fflush(stdin); scanf("%f",?&p->score[cn]); }?while?(p->score[cn]?<?0?||?p->score[cn]?>?100); } q?=?p;//連接成鏈表 i++;//下一個(gè)學(xué)生 } return?num; } void?DisList(stu?*L,?int?num,?char?course[CN][15])//處理統(tǒng)計(jì)信息(學(xué)生鏈表,學(xué)生人數(shù),課程列表) { int?i; stu?*p; p?=?L; float?sum[CN],?max[CN],?min[CN],?avg[CN];//分別保存每科的信息 while?(p?!=?NULL) { for?(i?=?0;?i<?CN;?i++) { if?(p?==?L) { sum[i]?=?0.0; max[i]?=?0.0; min[i]?=?100.0; } sum[i]?+=?p->score[i]; max[i]?=?max[i]>p->score[i]???max[i]?:?p->score[i]; min[i]?=?min[i]<p->score[i]???min[i]?:?p->score[i]; } p?=?p->next; } //打印統(tǒng)計(jì)結(jié)果 printf("科目?\\?項(xiàng)目\t總平均成績(jī)\t\t最高分\t\t最低分\n"); for?(i?=?0;?i?<?CN;?i++) printf("%s\t\t%10.2f\t\t%.2f\t\t%.2f\n",?course[i],?sum[i]?/?num,?max[i],?min[i]); } int?main() { char?course[CN][15]?=?{?"C語(yǔ)言","微積分"?};//寫(xiě)成字符串?dāng)?shù)組方便添加刪除科目 int?num; stu?*L; printf("=============================================================\n"); printf("\n\t\t\t學(xué)生信息管理系統(tǒng)\n\n"); printf("==============================================================\n"); num?=?Intput(L,?course); DisList(L,?num,?course); system("pause");//dos暫停函數(shù) return?0; }
注釋寫(xiě)得比較簡(jiǎn)單,不懂的可以問(wèn)我
舉報(bào)
C語(yǔ)言入門視頻教程,帶你進(jìn)入編程世界的必修課-C語(yǔ)言
2 回答圖書(shū)信息管理系統(tǒng)設(shè)計(jì)這個(gè)題,求大佬解
2 回答學(xué)生學(xué)籍管理
1 回答《數(shù)據(jù)庫(kù)系統(tǒng)-管理與技術(shù)》
2 回答怎樣用C語(yǔ)言編寫(xiě)一個(gè)旅游線路管理系統(tǒng)
3 回答教學(xué)題怎么在編譯系統(tǒng)上無(wú)法運(yùn)行
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2015-12-06
我也是初學(xué)C語(yǔ)言,無(wú)聊就個(gè)你寫(xiě)一個(gè)吧
按照的你要求用了結(jié)構(gòu)體和指針
還帶的些輸入判斷結(jié)構(gòu),其實(shí)不搗亂的輸入是用不到,再學(xué)生時(shí)代不用考慮,但是出來(lái)真正做程序,就要考慮比較多
親,給個(gè)好評(píng)吧
注釋寫(xiě)得比較簡(jiǎn)單,不懂的可以問(wèn)我