第2次作業:https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_4/homework/2502
一.函數 6-1 統計個位數字
1.實驗代碼
1 int Count_Digit ( const int N, const int D ) 2 { 3 int i,j,b=0; 4 i=N; 5 if(i<0) 6 i=-i; 7 do{ 8 j=i%10; 9 if(j==D) 10 b++; 11 i/=10; 12 }while(i>0); 13 return b; 14 }
2.解題思路
(1)文字描述
第一步: 調用函數
第二步: 定義I,j,b 。將N的值賦給i。如果i是負數,則取它的絕對值。
第三步:進行do-while語句,將i除以10取余值賦給j;如果j等於求的那個數字,b的值增加,然后再將i除以10的值賦給i
第四步:返回
(2)流程圖
3.本題調試過程碰到問題及解決辦法
錯誤:調用函數后,應該返回調用它的地方,而不是直接結束,所以最后不能輸入return 0;得到的結果不對
解決辦法:改為return b;
二. 數組1 7-4 求一組數中的最大值和次最大值
1.實驗代碼
1 #include<stdio.h> 2 int main() 3 { 4 int i; 5 int max,cmax,a[10]; 6 for(i=0;i<10;i++) 7 { 8 scanf("%d ",&a[i]); 9 } 10 max=cmax=a[0]; 11 for(i=0;i<10;i++) 12 { 13 14 if(max<a[i]) 15 { 16 max=a[i]; 17 } 18 } 19 for(i=0;i<10;i++) 20 { 21 if((cmax<a[i])&&(a[i]<max)) 22 { 23 24 cmax=a[i]; 25 } 26 } 27 printf("max=%d,cmax=%d",max,cmax); 28 29 return 0; 30 }
2.解題思路
(1)文字描述
第一步:定義 max,cmax,a[10],i
第二步:運用for語句進行最大值的判斷 如果max小於a[i],那么將a[i]賦給max,由此可得出最大值
第三步:運用for語句進行次大值的判斷 如果cmax小於a[i]且a[i]小於最大值,那么將a[i]的值賦給cmax
第四步:輸出最大值和次大值
(2)流程圖
3.本題調試過程碰到問題及解決辦法
錯誤:在進行次大值的判斷時忘了加前提條件,即小於最大值
解決辦法:判斷次大值 if中輸入的條件是 cmax<a[i]且a[i]<max
三. 數組2 7-4 選擇法排序
1.實驗代碼
1 #include <stdio.h> 2 int main() 3 { 4 int i, j, min, temp, a[10]; 5 for(i = 0; i < 10; i++) 6 { 7 scanf("%d",&a[i]); 8 } 9 10 for(i = 0; i < 3;i++) 11 { 12 min=i; 13 for(j = i+1; j < 10; j++) 14 { 15 if(a[min] > a[j]) 16 { 17 min=j; 18 } 19 } 20 temp=a[i]; 21 a[i]=a[min]; 22 a[min]=temp; 23 24 } 25 for(i = 0; i < 10; i++) 26 printf("%5d",a[i]); 27 return 0; 28 }
2.解題思路
(1)文字描述
第一步:定義i, j, min, temp, a[10]
第二步:讀取輸入的數字
第三步:運用for語句設輪數和比較次數
第四步:最小值與前一位交換
第五步:輸出結果
(2)流程圖
3.本題調試過程碰到問題及解決辦法
錯誤:題目要求每個數占5列,而此時的結果並沒有體現這一點
解決辦法: 將%d改為%5d
四.個人總結
(1) 這幾周我學習了函數、數組(一維數組和二維數組)。
在課堂中學習到如何調用函數,什么是函數的參數,怎樣確定函數的參數,什么是靜態變量等函數相關知識;學系到了數組的概念,一維數組和二維數組,選擇排序法等數組相關知識。
(2) 難點:對函數中參數的理解,數組的應用,字符串。
方法:回看PPT,與同學討論,看書和視頻理解。
五.互評和學習進度
初可欣同學:https://www.cnblogs.com/ckx001029-/p/10123682.html
邱作鵬同學:https://www.cnblogs.com/qzp123/p/10154564.html
袁於純同學:https://www.cnblogs.com/reunion/p/10151920.html
學習進度: