第四次作业
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/

浙公网安备 33010602011771号