C语言基础第五次作业
7-1 判断素数
1.实验代码
1 #include <stdio.h> 2 #include <math.h> 3 int main(void) 4 { 5 int n, i, sushu; 6 int x; 7 scanf("%d", &n); 8 while(n--) 9 { 10 scanf("%d", &x); 11 sushu = 1; 12 for(i = 2; i <= sqrt(x); i++){ 13 if(x % i == 0){ 14 sushu = 0; 15 break; 16 } 17 } 18 if(x == 1 ||sushu== 0) 19 printf("No\n"); 20 else 21 printf("Yes\n"); 22 } 23 return 0; 24 }
2.设计思路
(1)文字描述
第一步:判断一个数是否为素数,首先我们需要知道素数的定义:对于大于1的数,如果除了1和它本身,它不能再被其它正整数整除,那么它是一个素数。
第二步:可以使用while 循环,加入中间变量sushu 控制输出的结果
(2)流程图
3.本题调试过程碰到问题及解决办法
问题及解决办法:编译正确但是在运行是输入数字,输出的结果并不对,检查过后,原来是逻辑上出了问题,18行if条件里的应该是或者 我打成和了,导致最终输出的结果并不对。改正后能正常输出正确结果了。
7-2 统计一行文本的单词个数
1.实验代码
1 #include<stdio.h> 2 int main(){ 3 char c,s[1000]; 4 int i,count=0,number=0; 5 gets(s); 6 for(i=0;;i++) 7 { 8 c = s[i]; 9 if(c=='\0') 10 break; 11 if(c==' ')number=0; 12 else if(number == 0) 13 { 14 number = 1; 15 count++; 16 } 17 } 18 printf("%d",count); 19 20 return 0; 21 }
2.设计思路
(1)文字描述
第一步:定义主函数,定义变量c与数组s,整型变量n, count,number
第二步:利用for循环,break,break控制输出。
(2)流程图
3.本题调试过程碰到问题及解决办法
问题及解决办法:第一个问题就是没有注意到for语句中应该有三个语句,我的错误是有两个语句,但是尽管这样,还是要打两个分号。第二个问题是11行中if语句中C==后中的单引号里应该有一个字符,我打了两个字符,结果报错了,改正后正常运行。
二、总结和学习进度条
1. 总结:通过这几周的学习,渐渐觉得C语言越来越不是那么陌生了,二维数组,字符数组,第一开始感觉不是很清晰,但是回去学习书上资料和课后习题后,感觉好多了。
2.点评3个同学的本周作业
3、请用表格和折线图呈现你这几周的代码行数和时间、博客字数和时间、涉及的知识点。