第二週做業

1、本週完成的做業:

基礎做業

請在第一週做業的基礎上,繼續完成:找出給定的文件中數組的最大值及其對應的最小下標(下標從0開始)。並將最大值和對應的最小下標數值寫入文件。
輸入:
請創建以本身英文名字命名的txt文件,並輸入數組元素數值,元素值之間用逗號分隔。
輸出
在不刪除原有文件內容的狀況下,將最大值和對應的最小下標數值寫入文件。數組

1.實驗代碼

#include<stdio.h> 
#include<stdlib.h>
int main()
{
    FILE *fp;                //定義文件指針
    int a[10];
    int i, t=0, m=0;
    if((fp=fopen("F:\\yangzixin.txt","r+"))==NULL)                  //打開文件
    {
        printf("File open error!\n");
        exit(0);
    }
    for(i = 0; i < 6; i++)
    {
        fscanf(fp,"%d%c", &a[i]);              //從文件讀入數據保存
        printf("%d%c ", a[i]);
    }
    t = a[0];
    for(i = 0; i < 6; i++)
        {        
             if(a[i] > t)
             {
                  t = a[i];
                  m = i;
              }        
        }
    printf("\n%d %d", t, m);
    fprintf(fp,"\n%d %d", t, m);                  //在文件中輸出最大值和最小下標
    if(fclose(fp))                    //關閉文件
    {
        printf("Can not close the file!\n");
        exit(0);
    }
    return 0;
}

2.設計思路

3.本題調試過程碰到問題及解決方法



問題1:首先徹底按照書上來的,沒弄清楚要從文件中怎麼保存數據到屏幕上,還有文件打開錯誤的緣由
解決方法:第一次代碼編譯出來什麼都沒有,以後又認真看了書上內容,改正了那一個錯誤,還有在代碼中要顯示「/」要輸入兩個函數

問題2:按書上用的「r」,可是要用的不是「r」
解決方法:本身上百度查了「r」和「r+」的區別,發現「r」是隻讀,「r+」是讀和寫,咱們的代碼裏還須要寫,因此咱們不能用「r」,只能用「r+」和「a+」學習

問題3:開始照書上的寫好以後,而後直接把上週代碼運用進去,編譯出現一大串數字
解決方法:仔細檢查,發現沒將變量n改爲數字6,致使編譯錯誤設計

問題4:不知道怎麼將文件中的逗號引入,在屏幕上怎麼顯示
解決方法:試了多種方法最後在輸入輸出數據時後面加上一個字符,編譯運行出來才行。指針

4.運行結果截圖

此次主要學習到了fscanf和fprintf的用法,此次的做業須要注意注意不少細節,好比轉行等,還有注意exit(0)和exit(1)的用法。調試

2、學習進度條

3、學習感悟

本週主要學習了文件,fopen、fclose、fscanf和fprintf等函數的使用,分別表明打開文件、關閉文件、從文件讀入數據保存變量、在文件中顯示要輸出的值,我以爲這是一個比較難弄懂的重點,另外初步瞭解了指針,如FILE *fp,這是定義文件指針,看起來要弄懂仍是比較費勁的,因此這一章的內容還要好好學習。我以爲聽課的時候我聽得沒有太懂,可是後來下課後本身看着書這題目,感受沒有想象中的那麼難,因此在任什麼時候候都不能懶惰,不能認爲它難了就不去碰它。code

相關文章
相關標籤/搜索