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