題目描述:先在計算機硬碟中建立以自己英文名字命名的txt檔案,並輸入陣列元素數值,元素值之間用逗號分隔。
在用c語言編寫程式以找出給定的檔案中陣列的最大值及其對應的最小下標(下標從0開始)。
並將最大值和對應的最小下標數值寫入檔案。
最後在不刪除原有檔案內容的情況下,將最大值和對應的最小下標數值寫入檔案。
1 、程式**:
#include#includeint main(void)二、設計思路:首先,理解題目,先在自己的pc記憶體裡建立txt型檔案,且檔案內容設定為給定由10個整數組成的陣列;開始編寫程式,先定義三個變數和乙個以10為上限的陣列,定義乙個檔案指標,用指標找到個人電腦中指定的檔案並進行讀寫;先使用for迴圈對給定的陣列完整讀寫完;再由比較判斷出給定陣列正負的情況。使用for迴圈對資料進行處理:題目要求是「找到乙個具有最大和的子陣列」,即在給定的這個陣列中選取一定的數重新組合成乙個新陣列即為子陣列,且要使其內數相加為最大即最大和。故該子陣列有三種可能的情況。//檔案已開啟。
a=num[0];
for(i=0;i<8;i++)
//開啟檔案。
for(i=0;i<10;i++) //
讀寫檔案。
if(x==i) //
此時為給定整數陣列的數全為負的情況。
printf(
"\n最大和的子陣列b[i]:%d
",m);
printf(
"\n最大的子陣列的和max=: %d
",m);
fprintf(dp,
"\n最大和的子陣列b[i]:%d
",m);
fprintf(dp,
"\n最大的子陣列的和:max=%d
",m);
} else
//此時為給定整數陣列的數有正有負或全為正。
}printf(
"\n最大的子陣列的和max=: %d
",max);
fprintf(dp,
"\n最大和的子陣列b[i]: ");
for(i=0;i<=10;i++)
if(a[i]>=0
) fprintf(dp,
"%d
",a[i]);
fprintf(dp,
"\n最大的子陣列的和:max=%d
",max);
}if(fclose(dp) ) //
關閉檔案。
return0;
}
當那給定的陣列全為負時,要使子陣列的和有最大值,此時該陣列中的最大值就是構成子陣列的元素,還是唯一的元素,故最大和的值也為「給定陣列的最大值」
當給定的陣列中的整數有正有負或全為正整數時,此時子陣列的元素構成「特點」是應全為不小於零的數,即大於、等於零的數;再通過for迴圈計算出該最大和的值 和 子陣列元素的成員。
再是將得到的資料分別按情況寫入原檔案中,最後關閉檔案,終止程式。
三、文字建立截圖,整數陣列(包含正負數)。
四、程式執行結果的截圖或者效果錄影。
2023年春季學期第二週作業
基礎作業 請在第一周作業的基礎上,繼續完成 找出給定的檔案中陣列的最大值及其對應的最小下標 下標從0開始 並將最大值和對應的最小下標數值寫入檔案。輸入 請建立以自己英文名字命名的txt檔案,並輸入陣列元素數值,元素值之間用逗號分隔。輸出在不刪除原有檔案內容的情況下,將最大值和對應的最小下標數值寫入檔...
2023年春季學期第二週作業
請在第一周作業的基礎上,繼續完成 找出給定的檔案中陣列的最大值及其對應的最小下標 下標從0開始 並將最大值和對應的最小下標數值寫入檔案。輸入 請建立以自己英文名字命名的txt檔案,並輸入陣列元素數值,元素值之間用逗號分隔。輸出在不刪除原有檔案內容的情況下,將最大值和對應的最小下標數值寫入檔案。遇到問...
2023年春季學期第二週作業
基礎作業 請在第一周作業的基礎上,繼續完成 找出給定的檔案中陣列的最大值及其對應的最小下標 下標從0開始 並將最大值和對應的最小下標數值寫入檔案。輸入 請建立以自己英文名字命名的txt檔案,並輸入陣列元素數值,元素值之間用逗號分隔。輸出 在不刪除原有檔案內容的情況下,將最大值和對應的最小下標數值寫入...