1. 程式人生 > >C語言作業

C語言作業

com 字符串 整數 ble 個數字 tps 提交 ber 進制

一、PTA實驗作業(4分)

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

1. 本題PTA提交列表(要提交列表,不是結果)

技術分享圖片

2. 設計思路(用代碼表示扣分)

定義n用於存放輸入的數字個數,number[999]用來存放輸入數字,t,i用於討論;
輸入n
for(i=0;i<=n-1;i++){
輸入number[i];
}
如果n%2==0{
定義k
for (k=0;k<=(n/2)-1;k++){
t=number[k];
number[k]=number[n-1-k];
number[n-1-k]=t;
}
定義k
for(k=0;k<=n-1;k++){
輸出number[k];
if(k!=n-1){
輸出空格
}
}
}
否則(也就是n%2不為0) {
for(k=0;k<=n/2;k++){
t=number[k];
number[k]=number[n-1-k];
number[n-1-k]=t;
}
for(int k=0;k<=n-1;k++){
輸出number[k]
if(k!=n-1){
輸出空格

3.代碼截圖(註意,截圖,截圖,截圖。不要粘貼博客上。不用用···語法去渲染)

技術分享圖片

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

1.需要再定義一個變量t用於暫存前一個number的值,否則後一個number與前一個交換後還是原來的值
2.在這裏如果是奇數則中間數難以表達,於是我將奇偶分開討論

題目2:簡化的插入排序

1. 本題PTA提交列表(要提交列表,不是結果)

技術分享圖片

2. 設計思路(用代碼表示扣分)

定義 number[10]用於存放數組十個數;
定義n用於存放輸入數字的個數,a;
輸入n;
當n不為0{
for(int i=0;i<n;i++){
    輸入number[i]
}
輸入a
if(a<number[0]){
        輸出a的值
    }
for(int i=0;i<n;i++){
    輸出number[i]
    if(a>number[i]&&a<number[i+1])
    輸出a
}
if(a>number[n-1]){
        輸出a;
    }}
    else {
        輸入a的值;
                    輸出a的值;
    }

3.代碼截圖(註意,截圖,截圖,截圖。不要粘貼博客上。不用用···語法去渲染)

技術分享圖片

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

1.題目要求每個數字後邊要有空格,當時漏了
2.有負數要插在頭,當時錯

題目3:點贊

1. 本題PTA提交列表(要提交列表,不是結果)

技術分享圖片

2. 設計思路(用代碼表示扣分)

輸入n
定義數組a[n][10] 
for(i=0;i<n;i++) 輸入k for(j=0;j<k;j++)  輸入a[i][j];

遍歷a數組   t=a[i][j]  b[t]++    
    定義max=b[0];m=0;
for(i=1;i<1001;i++){
    if(b[i]>=max){
        max=b[i];
        m=i;
    }
}
輸出m和max的值;

;###3.代碼截圖(註意,截圖,截圖,截圖。不要粘貼博客上。不用用···語法去渲染)
技術分享圖片

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

1.全不同, 取到編號邊界值,當時多次輸出

  1. 有並列, 取編號最大者,後設計一個max變量解決

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

    PTA排名

    技術分享圖片

    三、同學代碼結對互評(1分)

    1.互評同學名稱 吳軍霖

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

    我的:技術分享圖片

大佬的:技術分享圖片

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

我的代碼:當時沒註意到數組的特殊性,就直接用代入法寫,有點是方便,但是太耍小聰明(當時沒看出來題目要幹啥)

他的代碼:傳統做法,並且排序更加整齊完美,牌面看起來也更舒服

你更喜歡哪種代碼風格? 按牌面講,他的更好看,思路也更清晰,但是考試的時候建議還是用我的寫節約時間

註意:第3項是評分重點,一定要有針對性說出問題,別都說好話,請專業去說他代碼有哪些優勢、哪些劣勢。

四、本周學習總結(3分)

1.你學會了什麽?

1.1 C中如何存儲字符串?

在c語言中存儲一個字符串,一般有兩種方法,一種是字符指針,一種是使用字符數組.

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

‘\0‘是字符串數組的結束標誌,因為有利於知道字符串的sizeof

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

1.scanf(“%s”,&ch)
2.for(i=0;i<n;i++)
scanf("%c",ch[i])
3.i=0;
while((ch[i]=getchar())!=‘\0‘){i++}

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

用字符的值減去‘0‘;
定義字符數組char c;
定義整型變量int n;
c = getchar();
n = c-48;/48是0的ascii碼值/
輸出n

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

定義字符串b【999】,輸入b
當a不為0
number=number*16+b[i]-‘0‘;

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

1.還不會關於字符數組怎麽從中間插入 刪掉字符(PTA題)
2.約瑟夫環不熟練(PTA猴子當大王)

3.期中考試小結

3.1 你認為為什麽沒考好?

1.基礎不紮實,送分沒拿到
2.大題代碼寫太亂,明明思路全是對的,但閱卷人看到有太低級的錯誤以及沒註釋的卷面就沒心情網細看了

3.2 羅列錯題。

請在選擇題、填空題、改錯題、編程題分別舉一題說明為什麽錯了,怎麽改?
1.選擇題:
6.設變量已經正確定義並賦值,正確C語言語句是
A、x+n=i; B、x=y==5; C、x=n%2 D、x=5=4+1;
答案為B 錯選C 原因:沒看到C後沒分號,感覺對了就選了
2.填空題

3.改錯題
第一題只看到語法錯誤,沒註意到是否符合程序要求,對於函數的基礎略差
4.編程題
計算組合數定義組合數計算時用了int,應改成double

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

不單純的打pta 還要對書本知識有針對性的復習

C語言作業