第二次作业
一 作业要求:https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_3/homework/2503
二 PTA作业
函数 6-4 判断奇偶性
1.实验代码
int even(int n) { if(n%2==0) return 1; else return 0; }
2.解题思路
第一步:输入n
第二步:判断输入的是奇数还是偶数,如果输入的数除以2为0,则输出1,否则输出0.
(2)流程图
3.本题调试过程碰到的问题及解决办法
(1)问题:没有太大的问题,但对于函数的编程了解的不太明白,所以在打代码时总是从头开始打,不懂得怎么往程序样例里插入。
(2)解决办法:通过在书本上查找,对于函数有了一定的了解,也不断地练习函数的编程,有了一些进步。
数组 7-1交换最小值和最大值
1.实验代码
#include <stdio.h> int main() { int n,i,p,q,min,max,j; int a[10]; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } min=max=a[0]; for(i=0;i<n;i++) { if(a[i]<=min) { min=a[i]; j=i; } } p=a[0]; a[0]=min; a[j]=p; for(i=0;i<n;i++) { if(a[i]>=max) { max=a[i]; j=i; } } q=max; a[j]=a[n-1]; a[n-1]=q; for(i=0;i<n;i++) printf("%d ",a[i]); }
2.解题思路
第一步:输入定义变量与循环变量
第二步:输入数组
第三步:在数组中找到最小值,使最小值与数组中第一个数交换
第四步:再找到最大值,让最大值与数组中最后一个数交换
第五步:输出交换后的数列
(2)流程图
3.本题调试过程碰到的问题及解决办法
(1)问题:输出的结果的格式错误,还有在进行最大值与最后一位数进行交换时,思路有些混乱,不太清晰。
(2)解决办法:再输出时要在%d后面加空格,多想几遍,把思路弄清楚,在进行编程几遍。
数组2 7-1简化的插入排序
1.实验代码
#include<stdio.h> int main() { int i,x,n,j,a[10]; scanf("%d",&n); for(i=1;i<n+1;i++) { scanf("%d",&a[i]); } scanf("%d",&x); for(i=1;i<n+1;i++) { if(x<=a[i]) { j=x; x=a[i]; a[i]=j; } } for(i=1;i<=n;i++) { printf("%d ",a[i]); } printf("%d ",x); }
2.解题思路
第一步:输入定义变量和循环变量
第二步:输入数组
第三步:将整数x与数组中的数进行比较,如果x<a[i],将整数x与a[i]进行交换,并依次进行循环,直到结束
第四步:输出新的数列
(2)流程图
3.本题调试过程碰到的问题及解决办法
(1)问题:在编程的最后只输出了a[i],没有输出x,导致最后输出的数列错误
(2)解决办法:添加 printf("%d",x);要熟练的掌握关于数组排序的方法,灵活运用排序方法
三 个人总结
(1)这几周我学习了函数当中的计算圆柱体积,数字金字塔,复数运算数组当中的一维数组的编程,选择排序法,冒泡排序法,二维数组的编程还有矩阵。在这几周的学习中,我学会了运用编程计算圆柱的体积,还有将一组数运用数组进行有序的排列,也积累了更多的代码。
(2)我认为在函数中的统计个位数字的编程,数组中的二维数组有些难。反复的思考和敲打代码,并在书上和网上进行深度的学习,不断地练习。
四 互评和学习进度
点评了王文琪同学的作业:https://www.cnblogs.com/qqovo/p/10134759.html
点评了章宇楠同学的作业:https://www.cnblogs.com/zyn-66/p/10145222.html