第三週作業

2022-08-12 17:51:27 字數 2309 閱讀 8394

第一題: 判斷上三角矩陣

上三角矩陣指主對角線以下的元素都為0的矩陣;主對角線為從矩陣的左上角至右下角的連線。

本題要求編寫程式,判斷乙個給定的方陣是否上三角矩陣。

輸入格式:

輸入第一行給出乙個正整數t,為待測矩陣的個數。接下來給出t個矩陣的資訊:每個矩陣資訊的第一行給出乙個不超過10的正整數n。隨後n行,每行給出n個整數,其間以空格分隔。

輸出格式:

每個矩陣的判斷結果佔一行。如果輸入的矩陣是上三角矩陣,輸出「yes」,否則輸出「no」。

輸入樣例:23

1 2 3

0 4 5

0 0 6

21 0

-8 2

輸出樣例:

yesno

實驗**:

int main(void)

}for(i = 1;i < n;i++)}}

flag:

if(flag == 1)

else

}return 0;

}設計思路:

正確截圖:

本題遇到的問題和解決辦法:

1.第乙個for迴圈應該迴圈到最後,我只迴圈到了輸入矩陣元素那裡,導致判斷出現錯誤,後面通過除錯發現了問題,改正了過來

2.第一次除錯時,最後彈出了十多個yse和no,後面發現是判斷了每乙個位置,後面用乙個變數代表了正確,遇到反例就改變賦值,再if判斷

3.確認矩陣的下三角錯誤,開始是i=1;i第二題:基礎作業

本週沒上課,但是請大家不要忘記學習。

本週請大家完成上週挑戰作業的第一部分:給定乙個整數陣列(包含正負數),找到乙個具有最大和的子陣列,返回其最大的子陣列的和。

例如:[1, -2, 3, 10, -4, 7, 2, -5]的最大子陣列為[3, 10, -4, 7, 2]

輸入:請建立以自己英文名字命名的txt檔案,並輸入陣列元素數值,元素值之間用逗號分隔。

輸出在不刪除原有檔案內容的情況下,將最大子陣列以及子陣列的和寫入檔案。

實驗**:

int main(void)

/*檔案處理,讀入資料*/

fscanf(fp,"%c",&a); /*吸收符號*/

for(i = 0;i <10;i++)

fscanf(fp,"%c",&a);

int sum = 0;

int max = 0;

for(i = 0;i < n;i++) }

for(i = 0;i < n;i++) }

} printf("\n");

fprintf(fp,"\n最大子陣列是[");

for(i = b;i <=c-1;i++)

fprintf(fp,"%d",num[c]);

printf("%d",num[c]);

fprintf(fp,"]");

fprintf(fp,"最大子陣列的和是%d",max);

printf("\n%d",max);

if(fclose(fp))

return 0;

}設計思路:

正確截圖:

遇到的問題及解決方案:

最大子陣列錯誤

解決:再第二次判斷位置的時候沒有再累加一次,導致max和sum錯誤

在檔案裡面顯示完全錯誤,輸出裡面沒有分行

在**裡面一直沒有發現錯誤,希望在老師講解的時候弄懂

本週學習進度:

學習時間

學習時長

**長度

學習上的疑惑

3/11-3/15

2h45

判斷乙個情況時用乙個變數來決定,正確取0反則取1這種方法沒有這個意識去用

總結:這次預習內容感覺還是比較難,關鍵是這個程式4個巢狀有點複雜,一沒有思路就會煩,**就更加寫不出了,一寫不出就想去請教別人,要改

第三週作業

實驗作業 1.輸入課本各個例題,除錯執行程式,並分析程式,將每乙個程式改寫2到3個版本,自己分析程式結果,然後再除錯執行,核對分析結果的對錯。2.編寫程式輸入乙個三角形的三條邊,計算其面積和周長 3.編寫程式計算並輸出課本本章習題3表示式的值並分析結果。4.編寫乙個程式,輸入乙個一元二次方程的三個係...

第三週作業

要求 1.輸入課本各個例題,除錯執行程式,並分析程式,將每乙個程式改寫2到3個版本,自己分析程式結果,然後再除錯執行,核對分析結果的對錯。2.編寫程式輸入乙個三角形的三條邊,計算其面積和周長 3.編寫程式計算並輸出課本本章習題3表示式的值並分析結果。4.編寫乙個程式,輸入乙個一元二次方程的三個係數,...

第三週作業

第一題 輸入課本各個例題,除錯執行程式,並分析程式。例1 include using namespace std int main 例8 includeusing namespace std int main else cout this is not a endl return 0 第三題 編寫程...