1. 程式人生 > >C語言博客作業--一二維數組。

C語言博客作業--一二維數組。

運算 大寫字母 運行 二進制 ets 以及 print 每次 img

一、PTA實驗作業

題目1:7-1 將數組中的數逆序存放

1. 本題PTA提交列表

技術分享圖片

2. 設計思路

定義三個整型變量n用來存放整數個數i,j是循環數
scanf(“%d”,&n)
定義一個整型數組a[10]
當i=0時執行循環
輸入數組
i++
讓j=n-1
當j大於0時輸出數組
每次j--
當j等於0時去空格輸出a[0]

3.代碼截圖

技術分享圖片

4.本題調試過程碰到問題及PTA提交列表情況說明

技術分享圖片
如圖,本題遇到主要問題是數組最後一位數輸出時沒有去空格,通過printf語句調試解決。

題目2:7-7 找鞍點

1. 本題PTA提交列表

技術分享圖片

2. 設計思路

定義整型變量n,x=0,y=0,i,j,p=0,flag=1;
定義二位數組a[6][6]
輸入n
當i=0;i<n;i++
j=0;j<n;j++
輸入數組
如果n==1
只有一個點時,一定是鞍點 輸入0,0
n不為1 是執行循環
for(i=0;i<n;i++){
y=i;
for(p=0;p<n;p++){// 找行最大值
if(a[i][x]<=a[i][p]){// 數組元素之間比較,若比a[i][x]大,則將數組列標賦給x
x=p;
}
for(j=0;j<n;j++){//判斷是否為列最小值
if(a[y][x]>a[j][x]){
y=j;//若此行最大值不是列所在最小值,把小的行標賦給y
並且結束循環
if(i==y){//行最大且列最小,判斷條件行標不改變
flag=0;
break;
}
如果flag=1
則輸出i和x

3.代碼截圖

技術分享圖片

4.本題調試過程碰到問題及PTA提交列表情況說明

技術分享圖片
技術分享圖片
本題主要問題是對題意理解不清以及行下標與列下標交換混亂從而導致答案錯誤,通過調試解決。

題目3:7-10 楊輝三角

1. 本題PTA提交列表

技術分享圖片

2. 設計思路

定義三個整型變量i,j,n
定義二維數組a[10][10]
輸入要打印的楊輝三角行數
當i=0;i<n;i++
a[i][0]=1輸入第一列
a[i][i]=1
當i=2;i<n;i++
j=1;j<i;j++
a[i][j]=a[i-1][j-1]+a[i-1][j]給每一位數賦值
輸出數組

3.代碼截圖

技術分享圖片

4.本題調試過程碰到問題及PTA提交列表情況說明

本題遇到的主要問題是沒有把握好輸出時的數據長度而導致的格式錯誤,經過同學糾正後改正。

二、截圖本周題目集的PTA最後排名。

技術分享圖片

三、同學代碼結對互評

1.互評同學名稱

朱傑偉

2.我的代碼、互評同學代碼截圖

同學代碼:
技術分享圖片
我的代碼:
技術分享圖片

3.我和同學代碼不同在哪裏?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出來哪裏出問題

本題傑偉同學的思路清晰,註釋也很到位,代碼可讀性很強而我沒有註釋,以後要多註意多註釋,但是傑偉同學用了兩個數組來實現楊輝三角我覺得沒有必要,可以用一個數組進行多次循環來實現。(個人看法)

四、本周學習總結

1.你學會了什麽?

1.1 C中如何存儲字符串?

有兩種方法,一種是字符數組,一種是字符指針
如:
const char *str = "hello"; //使用字符串指針
const char str[] = "hello"; //使用字符數組

1.2 字符串的結束標誌是什麽,為什麽要結束標誌?

字符串是以‘\0‘為結束標誌,在C語言中沒有專門的字符串變量,有了‘\0‘標誌後,就不必再用字符數組的長度來判斷字符串的長度了。

1.3 字符串輸入有哪幾種方法?

scanf("%s",in_buff);
gets(in_buff);
fgets(in_buff,BUFFER_SIZE + 1,stdin);

1.4 數字字符怎麽轉整數,寫個偽代碼?

定義字符變量a用來存放轉化之前的數,定義整型變量b用來存放轉化後的數
輸入一個數字字符存於a中
b=a-‘0’
輸出b

1.5 16進制、二進制字符串如何轉10進制?寫偽代碼?

十六進制
十六進制數組a[n]
for(i=0;a[i]不為‘\0’;i加一)
若字符為數字
n=n16+a[i]-‘0‘
若字符為小寫字母
n=n
16+a[i]-‘a’+10
若字符為大寫字母
n=n16+a[i]-‘A’+10
輸出n
二進制
二進制數組a[n]
for(i=0;a[i]不為‘\0’;i加一)
n=n
2+a[i]-‘0‘
輸出n

2.本周的內容,你還不會什麽?

對於字符串的輸出方法只掌握了一種,還不太熟練,對字符數據的進制轉換也還不是太熟練。

3.期中考試小結

3.1 你認為為什麽沒考好?

平時用來打代碼的時間太少了,而且上完課之後沒有復習課本內容,學習C語言就只限於寫pta以及課堂聽講,太單一了。

3.2 羅列錯題

選擇題
技術分享圖片
這一題是對字符運算符理解不到位才錯的
分析程序
技術分享圖片
這題沒有註意它的printf("sum=%d\n",num)只輸出了Total。
閱讀程序填空
技術分享圖片
這題沒想到在輸入前要給C賦值為0 而且第二空應該是return c;而不是return 0;
改錯
技術分享圖片
編程題
技術分享圖片
是由於不太適應手寫代碼和不能調試的原因吧,還有寫代碼的時候沒有註釋。

3.3 下半學期要怎麽調整C的學習?

平時要多復習書上的內容,不能上完課就把書本放下,而且平時也要多寫代碼,多做編程題,盡量先在紙上寫一遍再放在編譯器上運行調試。

C語言博客作業--一二維數組。