作業要求:【https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_3/homework/2503】
一· 函數
6-2 找兩個數中最大者 (10 分)
本題要求對兩個整數a和b,輸出其中較大的數。
函數接口定義:
int max( int a, int b );
其中a和b是用戶傳入的參數,函數返回的是兩者中較大的數。
裁判測試程序樣例:
#include <stdio.h>
int max( int a, int b );
int main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("max = %d\n", max(a, b));
return 0;
}
/* 你的代碼將被嵌在這里 */
輸入樣例:
-5 8
輸出樣例:
max = 8
1.實驗代碼
int max(int a, int b) { if(a>b){ return a; }else{ return b; } }
2.解題思路
(1)文字描述
第一步:定義函數
第二步:判斷a,b大小
第三步:輸出大的數
(2)流程圖

(3)遇到問題及解題思路

這道題沒有太大困難,根據要求定義函數,判斷大小即可。
二· 數組1
7-3 最高分、最低分、平均分 (10 分)
從鍵盤輸入6個學生的成績,統計最高分,最低分和平均分。
輸入格式:
在一行中輸入6個用空格間隔的整數。
輸出格式:
分別在不同行輸出結果,結果均為整數,沒有列寬控制,結果前后都沒有空格,請參照輸出樣例。
輸入樣例:
56 89 48 78 58 92
輸出樣例:
max:92
min:48
avg:70
1.實驗代碼
#include <stdio.h> int main() { int i; int a[10],min,max,avg = 0,sum = 0; for(i=0;i<6;i++) { scanf("%d",&a[i]); sum+=a[i]; } max=min=a[0]; for(i=1;i<6;i++) { if(min>a[i]) {min=a[i];} if(max<a[i]) {max=a[i];} } avg=sum/6; printf("max:%d\nmin:%d\navg:%d\n",max,min,avg); }
(1) 文字描述
第一步:輸入循環變量i,輸入一個數組,輸入max,min,avg=0,sum=0
第二步:做一個for循環給數組中元素賦值並求和
第三步:讓max=min=a[0]
第四步:構造for循環得到最大值和最小值
第五步:求出平均值並輸出max,min,avg
(2) 流程圖

(3) 遇到問題及解題思路

在做這道題時一定要注意pta中的輸出格式最后輸出時不能像下面一樣用三個printf。
printf("max:%d\n", max);
printf("min:%d\n", min);
printf("avg:%d\n", avg);
應該用一個printf("max:%d\nmin:%d\navg:%d\n",max,min,avg);
以后應多注意pta中作業要求。
三· 數組2
7-2 查找整數 (10 分)
本題要求從輸入的N個整數中查找給定的X。如果找到,輸出X的位置(從0開始數);如果沒有找到,輸出“Not Found”。
輸入格式:
輸入在第一行中給出兩個正整數N(≤20)和X,第二行給出N個整數。數字均不超過長整型,其間以空格分隔。
輸出格式:
在一行中輸出X的位置,或者“Not Found”。
輸入樣例1:
5 7
3 5 7 1 9
輸出樣例1:
2
輸入樣例2:
5 7
3 5 8 1 9
輸出樣例2:
Not Found
1.實驗代碼
#include <stdio.h> int main(){ int N, i; long X; long num; scanf("%d%ld", &N, &X); for(i=0; i<N; i++){ scanf("%ld", &num); if(num==X){ printf("%d\n", i); break; } } if(i==N){ printf("Not Found"); } return 0; }
2.解題思路
(1)文字描述
第一步:給N,i,x,num做定義並輸入N,x
第二步:做for循環(i<N),賦值給num
第三步:在i<N下,x=num則結束並輸出i
第四步:i<N,沒有與x相等的num,那么i=N,輸出Not Found
(2)流程圖

(3)遇到問題及解題思路


做這道題時不應把“=”與“==”弄混,不願忘記break的使用
四· 個人總結
學習內容
(1)更好的掌握函數,感覺用函數很方便。
(2)學習了一維數組,在定義一維數組時可以直接把把數組元素寫后面,要不還得賦值並在編譯時打上。
(3) 在調用一維數組時每次只能調用一個元素而不是整個數組。
(4)學習二維數組,二維數組需要定義兩個循環變量,有行和列。
難點
(1)冒泡排序法與選擇排序法,多照着敲幾遍代碼,加深理解。
(2)二維數組行列互換問題, 向老師同學請教。
五· 互評與學習進度
1.評論:
李曉旭同學:http://www.cnblogs.com/lixiaoxu695022762/
崔鳳宇同學:http://www.cnblogs.com/cfy991213/
蘇末然同學:https://www.cnblogs.com/smr2018023977/p/10122983.html
2.學習進度

