c语言第五次作业
1.实验代码
7-1 判断素数。
#include<stdio.h> #include<math.h> int panduan(int c); int main(void){ int d[10]; long a,b,i,y,n; scanf("%d",&a); for(i=1;i<=a;i++){ scanf("%d",&b); if(panduan(b)) d[i-1]=1; else d[i-1]=0; } for(i=1;i<=a;i++){ if(d[i-1]==1)printf("Yes\n"); if(d[i-1]==0)printf("No\n"); } return 0; } int panduan(int c){ int r=1; int i; if(c==1){ r=0; } for(i=2;i<sqrt(c);i++){ if(c%i == 0){ r = 0; break; } } return r; }
2 设计思路
(1)文字描述
第一步:输入a,;每次循环用自定义函数判断是否为素数;
第二步:若为1则为素数,若为0则不是素数;
(2)流程图
3.本题调试过程碰到问题及解决办法
没有太大问题
7—3 交换最大值和最小值
一.程序代码
#include<stdio.h> int main(void) { int n,i,max,min,c,a[10],d,e; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%d",&a[i]); } max=min=a[0]; for(i=0;i<n;i++){ if(a[i]<=min){ min=a[i]; c=i; } } d=a[0]; a[0]=min; a[c]=d; for(i=0;i<n;i++){ if(a[i]>=max){ max=a[i]; c=i; } } e=max; a[c]=a[n-1]; a[n-1]=e; for(i=0;i<n;i++) printf("%d ",a[i]); return 0; }
二.设计思路
1.文字描述
第一步:编译预处理命令,定义主函数
第二步:定义变量,用n表示要输入的数字
第三步:先将数组中的第一个数作为最大(小)值,找最小值,找最大值,然后进行分别与第一个数和最后一个数的替换这样便中的最大值和最小值进行交换了。
2.流程图
3.
调试过程中的问题和解决办法
(1)调试过程中的问题
(2)解决办法
编译过程中没有实质性的错误,但是没有得出题目要求的结果,后来发现了原来是因为在数据赋值的过程中没有加入for循环语句(即for(i=0;i<n;i++)),加入之后变得出了对应的结果。
三.总结和学习进度条
1.
(1)学习的内容,二维数组,字符串
(2)遇到的问题:逻辑上的错误,还少量的输入错误和语法错误
(3)解决办法:上课认真听老师讲,做笔记,将老师讲的重点标记在书上会吸取别人在编程上的方法