C語言程序設計 練習題參考答案 第八章 文件(2)

/* 8.8從文件ex88_1.txt中取出成績,排序后,按降序存放EX88_2.TXT中 */
#include "stdio.h"
#define N 10
struct student
{
? int num;
? char name[20];
? int score[3];? /*不能使用float*/
? float average;
};

void sort(struct student stu[]);
void print(FILE *fp, struct student stu[]);
void printtopfive(FILE *fp, struct student stu[]);

void main()
{
?? struct student s[N];
?? int i;
?? FILE *fp1,*fp2;
??? char ch;
??? if((fp1=fopen("c:\\ex88_1.txt","r"))==NULL)
????? {
?????? printf("不能打開文件c:\\ex88_1.txt");
?????? exit(1);
????? }
??? if((fp2=fopen("c:\\ex88_2.txt","w"))==NULL)
????? {
?????? printf("不能打開文件c:\\ex88_2.txt");
?????? exit(1);
????? }

?? for(i=0;i<N;i++)
?? {
????? fscanf(fp1,"%d%s%d%d%d",&s[i].num,s[i].name,&s[i].score[0],
??????????????????????? &s[i].score[1],&s[i].score[2]);
????? s[i].average=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3.0;
?? }
?? fprintf(fp2,"原始成績報表\n");
?? print(fp2,s);
?? sort(s);
?? fprintf(fp2,"排序之后的成績報表\n");
?? print(fp2,s);
?? fprintf(fp2,"前五名成績報表\n");
?? printtopfive(fp2,s);
}

void sort(struct student stu[])
{
? int i,k,j;
? struct student t;
? for(i=0;i<N-1;i++)
? {
??? k=i;
??? for(j=i+1;j<N;j++)
??? {
????? if(stu[k].average<stu[j].average)
???????? k=j;
????? if(k!=i)
????? {
?????? t=stu[i];
?????? stu[i]=stu[k];
?????? stu[k]=t;
????? }
??? }

?? }
}

void print(FILE *fp, struct student stu[])
{
?int i;
?fprintf(fp,"StudentID StudentName?? Score1? Score2? Score3? Average\n");
?for(i=0;i<N;i++)
?? fprintf(fp,"%-10d%-12s%8d%8d%8d%8.1f\n",stu[i].num,stu[i].name,
?? stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].average);
}

void printtopfive(FILE *fp, struct student stu[])
{
?int i;
?fprintf(fp,"StudentName?? Average\n");
?for(i=0;i<5;i++)
?? fprintf(fp,"%-12s%8.1f\n",stu[i].name,stu[i].average);
}

/*ex88_1.txt中取出成績?

20001??? 姓名(1)??? 70??? 80??? 90
20002??? 姓名(2)??? 71??? 81??? 91
20003??? 姓名(3)??? 72??? 82??? 92
20004??? 姓名(4)??? 73??? 83??? 93
20005??? 姓名(5)??? 74??? 84??? 94
20006??? 姓名(6)??? 75??? 85??? 95
20007??? 姓名(7)??? 76??? 86??? 96
20008??? 姓名(8)??? 77??? 87??? 97
20009??? 姓名(9)??? 78??? 88??? 98
20010??? 姓名(10)??? 79??? 89??? 99
*/

/*排序后,按降序存放EX88_2.TXT中

原始成績報表
StudentID StudentName?? Score1? Score2? Score3? Average
20001???? 姓名(1)???????? 70????? 80????? 90??? 80.0
20002???? 姓名(2)???????? 71????? 81????? 91??? 81.0
20003???? 姓名(3)???????? 72????? 82????? 92??? 82.0
20004???? 姓名(4)???????? 73????? 83????? 93??? 83.0
20005???? 姓名(5)???????? 74????? 84????? 94??? 84.0
20006???? 姓名(6)???????? 75????? 85????? 95??? 85.0
20007???? 姓名(7)???????? 76????? 86????? 96??? 86.0
20008???? 姓名(8)???????? 77????? 87????? 97??? 87.0
20009???? 姓名(9)???????? 78????? 88????? 98??? 88.0
20010???? 姓名(10)??????? 79????? 89????? 99??? 89.0
排序之后的成績報表
StudentID StudentName?? Score1? Score2? Score3? Average
20010???? 姓名(10)??????? 79????? 89????? 99??? 89.0
20009???? 姓名(9)???????? 78????? 88????? 98??? 88.0
20008???? 姓名(8)???????? 77????? 87????? 97??? 87.0
20007???? 姓名(7)???????? 76????? 86????? 96??? 86.0
20006???? 姓名(6)???????? 75????? 85????? 95??? 85.0
20005???? 姓名(5)???????? 74????? 84????? 94??? 84.0

*/

轉載于:https://www.cnblogs.com/emanlee/archive/2008/05/18/1202092.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276887.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276887.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276887.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

語法上的小trick

語法上的小trick 構造函數 雖然不寫構造函數也是可以的&#xff0c;但是可能會開翻車&#xff0c;所以還是寫上吧。&#xff1a; 提供三種寫法&#xff1a; ? 使用的時候只用&#xff1a; 注意&#xff0c;這里的A[i]gg(3,3,3)的“gg”不能打括號&#xff0c;否則就是強制轉換…

Ubuntu18.04如何讓桌面軟件默認root權限運行?

什么是gksu? 什么是gksu:Linxu中的gksu是系統中的su/sudo工具,如果安裝了gksu,在終端中鍵入gksu會彈出一個對話框. 安裝gksu: 在Ubuntu之前的版本中是繼承gksu工具的,但是在Ubutu18.04中并沒有集成, 在Elementary OS中連gksu的APT源都沒有. Ubuntu18.04 安裝和使用gksu: seven…

win10診斷啟動后聯網_小技巧:win10網絡共享文件夾出現錯誤無法訪問如何解決?...

win10系統共享文件夾時在資源管理器中的網絡里能夠看到所共享的文件夾&#xff0c;但在打開文件夾時卻出現 Windows無法訪問 Desktop-r8ceh55新建文件夾 請檢查名稱的拼寫。否則&#xff0c;網絡可能有問題。要嘗試識別并解決網絡問題&#xff0c;請單擊“診斷”的錯誤提示&…

兩段關于統計日期的sql語句

統計月份&#xff1a;selectleft(convert(char(10),[Article_TimeDate],102),7) as月份, count(*) as數量from[hdsource].[dbo].[article]groupbyleft(convert(char(10),[Article_TimeDate],102),7)orderby1統計年份&#xff1a; selectleft(convert(char(10),[Article_TimeDat…

apache配置文件詳解與優化

apache配置文件詳解與優化 一、總結 一句話總結&#xff1a;結合apache配置文件中的英文說明和配置詳解一起看 1、apache模塊配置用的什么標簽&#xff1f; IfModule 例如&#xff1a; <IfModule dir_module>DirectoryIndex index.html 索引文件 首頁文件&#xff08;首頁…

帆軟報表(finereport)單元格函數,OP參數

單元格模型&#xff1a;單元格數據和引用&#xff1a;數據類型、實際值與顯示值、單元格支持的操作單元格樣式&#xff1a;行高列寬、隱藏行列、自動換行、上下標、文字豎排、大文本字段分頁時斷開、標識說明、格式刷單元格Web屬性&#xff1a;web顯示、web編輯風格、控件實際值…

sklearn 安裝_sklearn-classification_report

原型sklearn.metrics.classification_report(y_true, y_pred, labelsNone, target_namesNone, sample_weightNone, digits2)參數y_true&#xff1a;1維數組或標簽指示數組/離散矩陣&#xff0c;樣本實際類別值列表y_pred&#xff1a;1維數組或標簽指示數組/離散矩陣&#xff0c…

effective c++條款11擴展——關于拷貝構造函數和賦值運算符

effective c條款11擴展——關于拷貝構造函數和賦值運算符 作者&#xff1a;馮明德重點:包含動態分配成員的類 應提供拷貝構造函數,并重載""賦值操作符。 以下討論中將用到的例子: class CExample { public: CExample(){pBufferNULL; nSize0;} ~CExample(){delete pB…

SparkSQL 之 Shuffle Join 內核原理及應用深度剖析-Spark商業源碼實戰

本套技術專欄是作者&#xff08;秦凱新&#xff09;平時工作的總結和升華&#xff0c;通過從真實商業環境抽取案例進行總結和分享&#xff0c;并給出商業應用的調優建議和集群環境容量規劃等內容&#xff0c;請持續關注本套博客。版權聲明&#xff1a;禁止轉載&#xff0c;歡迎…

Python標準庫之csv(1)

1.Python處理csv文件之csv.writer() import csvdef csv_write(path,data):with open(path,w,encodingutf-8,newline) as f:writer csv.writer(f,dialectexcel)for row in data:writer.writerow(row)return True 調用上面的函數 data [[Name,Height],[Keys,176cm],[HongPing,1…

python自動化測試腳本可以測php嗎_請對比分析一下php的自動化測試與python的自動化測試...

Unit Level Test: Python: doctest, nose PHP: PHPUnit Behaviour Driven Test (Cucumber-style): Python: Lettuce, Behave PHP: Behat Behaviour Driven Test (Spec-style): Python: spec PHP: PHPSpec Acceptance Test (Selenium): Python: 有官方的Selenium binding。 PHP:…

簡單易變的CSS陰影效果

厭倦了在圖片處理軟件上給每張圖片加上邊框修飾&#xff1f;讓CSS幫你一把吧&#xff01;嘿嘿&#xff0c;看看下面的幾張效果圖&#xff0c;邊框都不是用圖片做的&#xff0c;很方便吧&#xff1f; 文字塊的應用效果 NARROW This is the text that goes in the middle. MEDIUM…

我用代碼來給你們分析一個賺錢的技巧

2019獨角獸企業重金招聘Python工程師標準>>> 賺錢是個俗氣的話題&#xff0c;但又是人人都繞不開的事情。我今天來“科學”地觸碰下這個話題。 談賺錢&#xff0c;就會談到理財、投資&#xff0c;談到炒股。有這樣一個笑話&#xff1a; 問&#xff1a;如何成為百萬富…

idea中自動deployment的步驟

轉載于:https://www.cnblogs.com/littlehb/p/11322666.html

python怎么編輯文件_如何使用python中的方法對文件進行修改文件名

在使用python語言中的方法操作文件時&#xff0c;打開方法可以直接使用open&#xff0c;但是對文件重命名需要調用os模塊中的方法&#xff0c;刪除文件也是工具/原料 python 編輯器 截圖工具 臺式機 方法/步驟 1 進入到python安裝文件目錄&#xff0c;新建txt文件kou.txt2 打開…

球迷必備Euro Cup Mobile 2008 !-dopod touch diamond試用之歐洲杯

歐洲杯從6月8日開始&#xff0c;到現在已經進行了半個多月了。到今天為止已經進入到了尾聲&#xff0c;也到了激戰正酣的時刻&#xff01;(相信在國足出線無望后大伙的目光都聚集到了歐洲杯上) 但是平時上班忙&#xff0c;晚上也沒法熬夜看球&#xff0c;哥們心理著急呀。白天上…

【工具】switchhost

1.前提 主要功能切換host 2.下載路徑 https://oldj.github.io/SwitchHosts/ 3.使用略&#xff08;太簡單&#xff09;轉載于:https://www.cnblogs.com/totoro-cat/p/9987101.html

C# ?. 判斷Null值

有一句代碼&#xff1a; Html.DisplayFor(modelItem > item.SellDate, "RegularDate") RegularDate.cshtml 內容如下&#xff1a; model System.DateTime Model.ToString("yyyy/MM/dd") 目的是將數據庫里的 DateTime 顯示為完整日期&#xff0c;如 2019…

MOSS站點的FORM認證修改小結

項目中&#xff0c;將moss站點修改成form認證的方法&#xff0c;園子里面已經很多了&#xff0c;我就不再重提&#xff0c;其中有1點有些文章沒有提及&#xff0c;但是實際操作中又是比較重要的&#xff1a;在管理中心的web.config中添加roleManager之后&#xff0c;一定要將ht…

python中意外縮進是什么意思_如何處理python中的“意外縮進”?

慕工程0101907 Python在行的開頭使用間距來確定代碼塊何時開始和結束。你可以得到的錯誤是&#xff1a;意外的縮進。這行代碼在開始時比前一行有更多空格&#xff0c;但前一行不是子塊的開頭&#xff08;例如if / while / for語句&#xff09;。塊中的所有代碼行必須以完全相同…