標籤:char gets lag 十六 組元 元素 amp bre 編譯
一、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.My Code、互評同學代碼
同學代碼:
My Code:
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=n16+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語言部落格作業--一二維數組