作业要求:https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_3/homework/2503
PTA作业:
一、7-2查找整数(数组2)
1.代码:
# includeint main(void) { int i, flag, x,N; int a[20]; scanf("%d",&N); scanf("%d", &x); for(i = 0; i < N; i++) { scanf("%d", &a[i]); } for(i = 0; i < N; i++) { if(a[i] == x) { printf("%d\n", i); flag = 1; break; } } if(a[i] != x) { printf("Not Found\n"); } return 0; }
2.实验步骤:
第一步——输入数组中的数和要查找的数
第二步——判断数组中的数和要查找的数是否相等
第三步——如果相等则输出下角标,并跳出循环
第四步——如果不想等,则输出“Not Found”
3.流程图:
4.错误调试:
缺少了几种情况,问题没有考虑全面,1.查找的数x比数组中的所有数都大 2.x比数组中的所有数都小
5.解决方法:在判断数组中的数是否与x相等时,在其前面嵌入循环
二、7-3最高分、最低分、平均分
1.代码:
#includeint 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); }
2.实验步骤:
第一步:定义一个数组
第二步:循环输入5个数并求和
第三步:假设最大值等于最小值且初始值为数组的第一个数
第四步:在循环内将最大值和最小值分别与数组的里的数一次比较,并确定最大值和最小值
第五步:计算平均数
第六步:按题目要求输出格式
3.流程图:
4.错误调试:
编译一直报错
5.解决方法:查看每一个语句后发现,在代码中少了一个“}”,导致编译执行出现错误
三、6-4判断奇偶性
1.代码:
#includeint even( int n ); int main() { int n; scanf("%d", &n); if (even(n)) printf("%d is even.\n", n); else printf("%d is odd.\n", n); return 0; } int even( int n ) { if(n%2==0) { return 1; } return 0; }
2.实验步骤:
第一步——调用函数
第二步——输入一个数
第三步——判断奇偶性
第四步——构造函数(能被2整除的数是偶数,不能被2 整除的数是奇数)
3.流程图:
4.错误调试:
总结:
1.一批相同类型的变量使用同一个数组变量名,用下标来相互区分。
2.只要知道了数组第一个元素的 地址以及每个元素所需的字节 数,其余各个元素的存储地址 均可计算得到。
3.交换最小值用index记录最小值对应的下标 a[index]就是最小值 最小值与第一个数交换 a[index] <==> a[0]
我个人觉得近期学的一维数组还是比较好理解,但是二维数组的行列交换的题的思路还不是很明确,对于排序的方法还不能熟练掌握
评价:
对苏末然的评价:https://www.cnblogs.com/smr2018023977/p/10122983.html
对张虹泽的评价:https://www.cnblogs.com/kaitongbokebokeyuan/p/10147468.html
对何衡的评价:https://www.cnblogs.com/blogbokeyuan/p/10153123.html