C語言部落格作業 一二維陣列

2022-05-31 02:18:11 字數 2609 閱讀 2877

定義y放年份,n放不同數字個數

輸入y和n的值

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

a[i]=b%10; 把年份各個位數的數字賦值給陣列a

b/=10;

for(i=0;i<4;i++){

for(j=i+1;j<4;j++)

遍歷陣列a,如果數字一樣count減一,且跳出內迴圈

如果count值等於n滿足題意停止迴圈,輸出年份和相差的年份

如果不滿足年份加一,其他重新賦值繼續迴圈到滿足題意,輸出

開始輸出的格式有問題,沒有前導零。在輸出部分進行格式的修改就可以了。

定義n,m放左移次數,t,j

輸入n,m的值

輸入陣列的值

if(m>n) m=m-n

遍歷陣列if(i>=m) for(j=i;j>i-m;j--){ 數字兩兩交換移動

t=a[j-1]; 到滿足題意的移動位置

提交後都是格式錯誤,仔細閱讀題目發現格式要求。在輸出加上判斷條件就可以

還有乙個測試點m>n的答案錯誤,對該情況特殊分析,賦值就滿足題意了

定義n,i,j,k,max放行的最大值,c記錄行標,b記錄列標

輸入n的值,給陣列賦值

for(j=0;j=max){ //找出行中的最大值//

max=a[j][i];

c=j;b=i記錄下下標

有乙個錯誤是答案錯誤經過排查發現是輸出的大小寫與題目不符

當有兩個並列的鞍點輸出後面:開始在行中找最大值是用的前面比較。加上等號:a[j][i]>=max就拿的是後面那個

我的**:

陳文杰**:

評價:他的**取各個位數的數字方法有些複雜而且只針對了特殊情況,我的較為簡潔且滿足一般情況

他判斷不同數字每種情況分得很細,讓人很清楚但篇幅太長。我用了迴圈中判斷較為簡單,稍有一些思維量

該題的做法思路其實都差不多,不同就是**的選擇格式不同。

c中定義字元型陣列儲存字串

結束標誌:\0

原因:如果沒有\0,就不知道字串在哪結束,導致錯誤。

- 1.使用迴圈結構和scanf("%c",  )語句輸入

- 2.scanf("%s", )遇到空格就會中止

- 3.gets()這種方法只有遇回車會終止

- 4.getchar()輸入單個字元

定義字元ch存放數字字元

輸出ch-'0'

####16進製制:

定義字元陣列a[100]放16進製制字串,result放轉化後的結果

輸入陣列的值

for 第一位to最後一位

若a為字元0到9,result=result*16+a[k]-'0';

若a為a到f或a到f,result=result*16+a[k]-'a'或'a'+10;

輸出結果

####2進製

定義字元陣列a[100]儲存16進製制字串,result放轉化後的結果

輸入陣列得值

for 第一位to最後一位

若a為字元0或1,result=result*2+a[k]-'0';

輸出結果

迴圈條件的判斷也經常出現一些錯誤,已經找到思路但錯在這一步。

基礎知識掌握得不夠紮實

**的寫法不夠紮實

預習更認真一些,把基礎打得更紮實一點

pta的題多去練練

多看看別人的**,提高自己的**閱讀和編寫能力

C語言部落格作業 一二維陣列

我在pta上用的是一開始用的是順序排序法。後來知道二分法效率更改改的因為沒有看到題目中的格式要求錯了一下其他的大體正確。行列柔和在一起寫的很亂後來做了注釋就沒那麼亂了總體來說不是很難。本題就是跨越那個已經是7的猴子第二次報數比較難操作其他的都不是難題 張志鑫張志鑫 我 他可能是沒有看到題目。他的做法...

C語言部落格作業 一二維陣列

定義三個整型變數n用來存放整數個數i,j是迴圈數 scanf d n 定義乙個整型陣列a 10 當i 0時執行迴圈 輸入陣列 i 讓j n 1 當j大於0時輸出陣列 每次j 當j等於0時去空格輸出a 0 如圖,本題遇到主要問題是陣列最後一位數輸出時沒有去空格,通過printf語句除錯解決。定義整型變...

C語言部落格作業 一二維陣列

本題pta提交列表 設計思路 int a 10 賦初值為0 int n,x,i,t 輸入n的值 輸入陣列a 輸入x的值 a n x 將要插入的數放在最後 for 0 to n 1 若這個數a n 小於其中乙個數,就交換他們的值 列印排序結果 3.截圖 4.本題除錯過程碰到問題及pta提交列表情況說明...