第二次作业
作业要求链接:https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_4/homework/2502
一.函数6-4判断奇偶
1·实验代码:
1 #include<stdio.h> 2 int even( int n ); 3 int main() 4 { 5 int n; 6 scanf("%d",&n); 7 if(even(n)) 8 { 9 printf("%d is even.",n); 10 } 11 else 12 { 13 printf("%d is odd.",n); 14 } 15 16 return 0; 17 18 } 19 int even(int n) 20 { 21 if(n % 2 == 0) 22 { 23 return 1; 24 } 25 else 26 { 27 return 0; 28 } 29 }
2·解题思路:
(1).文字描述:
第一步:理清什么是奇数和偶数(能被2整除的数即为偶数,否则为奇数)。
第二步:怎样用代码表示奇偶性(当满足n%2=0为偶数,否则为奇数)。
(2).流程图:
3.本题调试过程碰到问题及解决办法.
(1).错误截图:
(2).编译器设置断点、单步调试的界面截图:
(3).
本题遇到的问题:
经过仔细查找后发现不细心将printf("%d is even.\n", n)
printf("%d is odd.\n", n);
中的“even.\n""odd.\n"写成"even\n""odd\n"
解决办法:可以考虑直接将标题已有代码的复制下来。
2.数组(1)7-2输出数组元素
1.实验代码:
1 #include<stdio.h> 2 int main() 3 { 4 int n,i,a[20],b[20],j; 5 scanf("%d",&n); 6 for(i = 0;i < n;i++) 7 { 8 scanf("%d",&a[i]); 9 } 10 for(i = 0;i < n-1;i++) 11 { 12 b[i]=a[i+1] - a[i]; 13 } 14 for(i = 0;i < n-1;i++) 15 { 16 if(i%3 == 0) 17 { 18 printf("\n"); 19 } 20 printf(" %d",b[i]); 21 } 22 return 0; 23 }
2.解题思路:
(1).
第一步:用循环计算前后两个数的差值。
第二步:用另一个数组b[]存储差值.
第三步:实现每行三个差值的格式输出结果。
(2).流程图:
3.本题调试过程碰到问题及解决办法.
(1).运行过程:
(2).编译器设置断点、单步调试的界面截图:
三.数组(2)7-4选择法排序
1.实验代码:
2.解题思路:
(1).文字描述:
第一步:找出输入的10个数字中的最小值并与数组中的第一个数进行交换。
第二步:找出剩余的9个数字中的最小值并与第二个数换位置。
·
·
·
第九步:找出最后两个数的最小值并互换位置。
(2)流程图:
3.本题在调试过程中所遇到的问题及解决办法:
(1)错误截图:
(2)编译器设置断点,单步调试截图:
(3)本题遇到的问题:
为观察清题意,将“注意:要求排序只排3轮。”理解错误
(4)解决办法:
将代码中的10轮改成3轮
三.个人总结
(1)最近几周学习的内容及学到的知识点:
吸收:1.数组(一位数组,二维数组)2.冒泡排序法 3.选择排序法
消化:1.数组的概念(数组是用于存储多个相同类型数据的集合)2.数组的一些简单运用 3.冒泡排序的概念(依次比较相邻的两个数,若是递减的,则交换位置,否者不换,最后结果是将数组中最大的值放到最后一个位置,下面亦是如此)4.冒泡排序的简单运用(数的升与降)5.选择排序法的概念(找出一组数中的最小值,然后与第一个数交换位置,接着找出剩余无序数的最小值并与第二个数交换位置,依次类推)6.选择排序法的简单运用(数的升与降)
(2)
难点:数组,冒泡,选择排序法的熟练掌握
方法:多刷题,包括实际操作和理论题。
四.互评和学习进度
(1)评价过同学博客的链接:
1.徐凤隆
2.王恩临
3.张学键
(2)表格:
敲代码量/行 | 敲代码时长/时 | 写博客量/数 | 写博客时长/时 | 所学的知识点 | |
第十四周 | 2000 | 10 | 0 | 0 | 一维数组 |
第十五周 | 2000 | 11 | 0 | 0 | 二维数组 |
第十六周 | 2100 | 10 | 0 | 0 | 冒泡排序 |
第十七周 | 2200 | 11 | 2050 | 5 | 选择排序 |
(3)折线图: