標籤:1.3 簡單 修改 很多 語言 調試 解決 分享 二維數組
一、PTA實驗作業題目1:7-3 出生年1. 本題PTA提交列表
2. 設計思路
- 1、聲明一個函數different()用來計算一個年份的不同數字個數
- 2、定義y(y是來計算符合要求的年份的量),n(n為題目要求的不同數字個數),x(x用來存放起始年份),flag(flag是用來表示每個y值中的不同數字個數的量)
- 3、輸入起始年份y和題目要求的n
- 4、x=y(存放起始年份)
- 5、do {flag計算y中不同數字個數;如果flag=n,符合題意,輸出相應結果,並結束迴圈;如果不符合,y自增一}while(1)
- 6、對函數different(y)定義:
- 首先定義一個數組a[4]和不同數字個數count等於4;
- a[4]存放y的每一位;
- for(int i=0;i<4;i++) {for(int j=i+1;j<4;j++)如果a[i]=a[j,count減一,結束j的迴圈;
函數結果返回count
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明。
2. 設計思路
- 1、定義二維數組a[6][6]和n
- 2、輸入n
- 3、 for(i=0; i<n; i++) for(j=0; j<n; j++) { scanf("%d",&a[i][j]); } 輸入二維數組
- 3、定義k=0,q=0,p=0(k,q,p都是下面迴圈要使用的),flag=1(flag是來判斷鞍點存不存在的)
-4、for(i=0; i<n; i++) { q=i(下面需要用來判斷此行最大值是不是列所在最小值); 。。。。。。}
- 5、 for(p=0; p<n; p++) { if(a[i][k]<=a[i][p]) //數組元素之間比較,若比a[i][k]大,則將數組列標賦給k k=p; } } 這裡找出行最大值,並將該最大值所在列的值賦給k,以便進行下一步行最小值的尋找
- 6、for(j=0; j
- 7、找到後只需比較i和j是否相等,相等則說明此行最大值是列所在最小值,讓flag等於0,結束迴圈
- 8、if(flag==0) 輸出結果 else 輸出none
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明。
2. 設計思路
- 1、定義數組a[10][10].i,j,n
- 2、輸入n
- 3、for(i=0;i<10;i++) 將行頭及對角線中存入1(a[i][i]=a[i][0]=1)
- 4、for(i=2;i<n;i++){for(j=1;j<i;j++){}a[i][j]=a[i-1][j-1]+a[i-1][j];//將第三行起的數存入 } }存入第三行起除對角線外的所有數
5、輸出數組
3.代碼
4.本題調試過程碰到問題及PTA提交列表情況說明。
- 1、我一開始j用的是小於等於i,結果把對角線上的數改變了
2、第一次做的時候忘了換行,輸出結果錯誤
二、本周題目集的PTA最後排名。
三、同學代碼結對互評1.互評同學名稱
李於程
2.My Code、互評同學代碼
3.我和同學代碼不同在哪裡?有哪些各自優勢?你更喜歡哪種代碼風格?如果同學代碼有錯的也請幫忙指出來哪裡出問題。
1.你學會了什嗎?1.1 C中如何儲存字串?
1.5 16進位、二進位字串如何轉10進位?寫虛擬碼?
第一題我題目意思理解錯誤,我以為他問的是C語言可以輸出的數的進位位= =
第七空為ch=getchar(),我唯寫了ch,這是我沒把上課內容充分理解的原因,以後上完課我應該進行複習
改錯比較尷尬,因為我知道它錯了,錯在哪,卻不知道怎麼改,我認為這是因為我閱讀程式能力不夠的原因,以後我要多讀程式,學會看程式
編程題其他兩題我做得不錯,這一題我也知道怎麼做,但是可能考試比較緊張了,我忘了怎麼求x的值了= =,考試時時間比較緊迫,就沒仔細去想,希望下次做題能夠保持頭腦清晰,不要著急
3.3 下半學期要怎麼調整C的學習?
- 1、基礎知識要先掌握好,即課本的內容先精通,再來談更進一步的深奧內容
- 2、通到期中,我明白了c的學習不只是pta上做編程題而已,一些基礎的理論的簡單知識也要明白
- 3、下半學期,要在搞好基礎知識的情況下,將這些知識運用於編程中
C語言二維數組作業