https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2522
預習作業:
觀看列表截圖:
定義數組:
數組:
7-2 輸出所有大於平均值的數中我的代碼:
#include<stdio.h> int main(void) { int a[10],b[10],i,j,n; double sum,av; scanf("%d",&n); if(n==0){ printf("Invalid."); return 0; } if(n>10){ printf("Invalid."); return 0; } if(n==1){ printf("Invalid."); return 0; } for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(j=0;j<n;j++){ sum=sum+a[j]; } av=sum/j; printf("%.2lf",av); printf("\n"); for(j=0;j<n;j++){ if(a[j]>av){printf("%d ",a[j]);} } }
解題思路:
1、初步判斷該題求和需要用到循環;
2、並定義我需要的變量;
3、並且解決當定義的變量n出現的多種情況;
4、我用if語句解決n=1;n=2;n<10;n>10的多種情況;
流程圖如下
我的初始程序:
放入dev-c++中運行:

程序的運行結果:
與題意不符,進行調試:
輸入數據並單步調試:
單步調試:
我發現在j=0時做了除數:
出現了inf:
再次編譯並運行:
改正並編譯調試:
調試后我的數據還少空格和小數點保留兩位:
提交后發現一些錯誤:
我再次加入一些if的判斷語句后判斷n=0的情況:
結果正確。
第14次作業 7-2 求最大值及其下標:
實驗代碼:
#include <stdio.h> main() { int n,i,j; scanf("%d",&n); int a[11]; for(i=0;i<n;i++) scanf("%d",&a[i]); for(j=0;j<n;j++) { if(a[0]<a[j]) { a[0]=a[j]; i=j; } else if(a[0]==a[j]) { a[0]=a[j]; if(i>j) { i=j; } } } printf("%d %d",a[0],i); }
設計思路:
第一步:仔細閱讀作業題目要求,觀察輸出樣例及輸入樣例的格式。
第二步:需要定義一個數組a[i]。
第三步:使用for循環與if-else語句判斷a[0]>a[j]。
第四步:如果a[0]>a[j],並將a[0]賦值給a[j]。
第五步:最后輸出a[j],j。
路程圖如下:
我在解題時的困難與調試過程:
下一步:
與題意不符:
輸入:
單步進入:
輸入變量:
查看結果:
單步進入:
輸出結果:
個人總結:
在這次的學習當中,我了解了關於數組的知識點,數組的應用使得我們的數據變得有一定的整潔型,能夠更好的輸入輸出數據、存放數據、整理數據,同時我對循環與條件的認識與應用也變得更深刻了。
表格及折線圖:
表格
折線圖
作業點評:
https://www.cnblogs.com/liuweiliuwei/
https://www.cnblogs.com/1006cy/
https://www.cnblogs.com/1017547133jyj/