C语言基础第五次作业
题目7-2 统计一行文本的单词个数
1.实验代码
1 #include <stdio.h> 2 int main() 3 { 4 char a; 5 int cnt=0,countword=0; 6 while(1){ 7 scanf("%c",&a); 8 if(a=='\n'){ 9 break; 10 }else if(a!=' '){ 11 if(a>='a'&&a<='z'||a>='A'&&a<='Z'||a>='0'&&a<='9') { 12 countword++; 13 cnt++; 14 } 15 while(1){ 16 scanf("%c",&a); 17 if(a==' '||a=='\n'){ 18 break; 19 } 20 cnt++; 21 } 22 if(cnt>1){ 23 if(a>='a'&&a<='z'||a>='A'&&a<='Z'||a>='0'&&a<='9') countword++; 24 } 25 if(a=='\n'){ 26 break; 27 } 28 } 29 } 30 printf("%d",countword); 31 return 0; 32 }
7-3 交换最大值和最小值
1 #include<stdio.h> 2 #define N 10 3 int main() 4 { 5 int i, x, n; 6 int min, max; 7 int p, q, temp; 8 int a[N]; 9 scanf("%d", &n); 10 for (i = 0; i < n; i++){ 11 scanf("%d", &a[i]); 12 } 13 min = a[0]; 14 for (i = 0; i < n; i++) { 15 if (min >= a[i]) 16 { 17 min = a[i]; 18 p = i; 19 } 20 21 } 22 temp = a[0]; 23 a[0] = a[p]; 24 a[p] = temp; 25 max = a[0]; 26 for (i = 0; i < n; i++) { 27 if (max <= a[i]){ 28 max = a[i]; 29 q = i; 30 31 } 32 33 } 34 temp = a[n - 1]; 35 a[n - 1] = a[q]; 36 a[q] = temp; 37 for (i = 0; i < n; i++) { 38 printf("%d ", a[i]); 39 } 40 return 0; 41 42 }
2 设计思路
(1)文字描述,主要描述题目算法。
7-2、
第一步:定义字符型变量a和整型变量cnt,countword.
第二步:输入a
第三步:用if-else和while循环判断单词的个数
第四步:输出countword。
7-3、
第一步:定义变量min,max等和定义数组a[N].
第二步:输入n,a[N],
第三步:使用for循环和if语句
第四步:输出数组a[N].
(2)流程图
7-2、
7-3、
3.本题调试过程碰到问题及解决办法
7-2:
问题:对getchar()的用法错误
解决方法:把a=getchar();去掉把scanf()放入while循环中去。
7-3:
问题:定义数组出问题。
解决方法:把n改成10.
二、总结和学习进度条
1、总结这几周所学内容、遇到的问题以及解决方法。
对新学的数组不够充分理解,应多加学习。
2、点评3个同学的本周作业(在作业中给出被点评同学博客的超链接!超链接!),并邀请3名同学点评你的作业,无点评作业倒扣该题分数。
3、请用表格和折线图呈现你这几周的代码行数和时间、博客字数和时间、涉及的知识点。
周一 | 周二 | 周三 | 周四 | 周五 | |
代码行数 | 20 | 10 | 34 | 17 | 89 |
博客字数 | 106 | 0 | 21 | 69 | 23 |
涉及的知识点数 | 6 | 0 | 4 | 3 | 15 |