請在第一週做業的基礎上,繼續完成:找出給定的文件中數組的最大值及其對應的最小下標(下標從0開始)。並將最大值和對應的最小下標數值寫入文件。
輸入:
請創建以本身英文名字命名的txt文件,並輸入數組元素數值,元素值之間用逗號分隔。
輸出
在不刪除原有文件內容的狀況下,將最大值和對應的最小下標數值寫入文件。數組
#include<stdio.h> #include<stdlib.h> int main (void) { FILE * fp; int i,n,index; int s [10]; char op=','; if ((fp = fopen ("c:\\ songguanhao.txt","r+")) == NULL) { printf ("File open error!\n"); exit (0); } fscanf (fp,"%d",&n); for (i=0; i<n; i++) fscanf (fp,"%d%c",&s [i] ,&op); index=0; for (i=0; i<n; i++) if (s [i] > s[index] ) index=i; fprintf (fp,"\n%d %d",s [index],index); if (fclose (fp)) { printf ("Can not close the file! \n" ); exit (0); } return 0; }
判斷最大值及最小下標:學習
剛開始看到題目沒一點思路,但既然直接跳着講十二章,確定能作,就看書,反覆看究竟如何打開文件,什麼怎麼讀,怎麼寫入......
而後題目的意思一開始也沒怎麼搞懂,不知道是要寫入文件仍是讀出文件中的數據。
第一次運行成功是是這樣的:設計
雖然文件裏只顯示最大值和最小下標,但很興奮,覺得完成了。當我準備再看看能力題時,又看了一遍題目,發現不對,文件裏還要有數組中包含的數據,題目中提到要在保證文件中內容不刪除的前提下,將結果寫入。而後就知道文件裏一開始也是要有數據的,須要讀出來,而後對代碼進行改正。
改事後,我先在文件裏輸入數組元素個數,數據,而後進行保存,再去運行,運行後不用輸入,直接打開文件,就有告終果:3d
如上圖。指針
周/日期 | 這周所花的時間 | 代碼行數 | 學到的知識點簡介 | 目前比較困惑的問題 |
---|---|---|---|---|
3/3-3/8 | 三天六小時 | 50 | 一、定義、運用文件指針;二、如何打開、關閉文件三、如何讀出指定文件中的數據;四、如何向指定文件中寫入數據; | 字符、字符串有什麼區別?兩者輸入、輸出有沒有很大不一樣?什麼纔算字符串?什麼算字符?在文件中兩者有沒有差異? |
第一次接觸指針,可能大多數同窗都已經日後學習了,本身是第一次碰到因此很生疏。何況我數組方面也尚未搞透徹。現在一週只有一節專業課了,已經變成徹底靠本身了。真的靠本身學習,怕是靠不住。但有時想一想別的同窗都是在自學,而且已遠超本身,啊,想一想仍是會有些許動力的。調試