PTA第五次作业
7-2 统计一行文本中的单词个数
一.程序代码
#include
int main(void)
{char string[10000];int i,num=0,word=0;charc;
gets(string);for(i=0;(c=string[i])!='\0';i++)if(c==' ') word=0;else if(word==0){
word=1;
num++;
}
printf("%d\n",num);return 0;
}
二.设计思路
1.文字描述
第一步:编译预处理命令,定义主函数
第二步:定义变量,先定义一个以“string”为名的一维数组,用来储存即将输入的一行文本,i表示输入的字符,num表示单词数,word表示是否该字符是单词,再定义一个字符数组c
第三步:若输入的过程中没有遇到终止符号,那么就继续输入,如果c=‘ ’时,令word=0,从而使num的数量增加,进而统计出这一行文本中的单词个数
2.流程图
3.调试过程中的错误和解决办法
(1)调试过程中发现的错误
(2)解决办法
对于新学习的一维数组的知识掌握不牢,没有正确的输入,忘记输入“;”,输入之后问题就解决了。
PTA第五次作业
7—3 交换最大值和最小值
一.程序代码
#include
int main(void)
{int n,i,max,min,c,a[10],d,e;
scanf("%d",&n);for(i=0;i
scanf("%d",&a[i]);
}
max=min=a[0];for(i=0;i
min=a[i];
c=i;
}
}
d=a[0];
a[0]=min;
a[c]=d;for(i=0;i=max){
max=a[i];
c=i;
}
}
e=max;
a[c]=a[n-1];
a[n-1]=e;for(i=0;i
printf("%d",a[i]);return 0;
}
二.设计思路
1.文字描述
第一步:编译预处理命令,定义主函数
第二步:定义变量,用n表示要输入的数字,用i表示数所在的位置,max表示最大值,min表示最小值,在定义一个一维数组a
第三步:先将数组中的第一个数作为最大(小)值,找最小值,找最大值,然后进行分别与第一个数和最后一个数的替换,依次按顺序输出N个数,这样便可以将这组数中的最大值和最小值进行交换了。
2.流程图
3.
调试过程中的问题和解决办法
(1)调试过程中的问题
(2)解决办法
编译过程中没有实质性的错误,但是没有得出题目要求的结果,后来发现了原来是因为在数据赋值的过程中没有加入for循环语句(即for(i=0;i
三.总结和学习进度条
1.
(1)学习的内容:for 语句,while语句,break语句,scanf语句,字符型数据,switch语句,一维数组,二维数组,字符串
(2)遇到的问题:语句使用过程中有时会有逻辑上的错误,还有语句运用上的问题以及少量的输入错误和语法错误
(3)解决办法:上课认真听老师讲的知识点,做好笔记,将老师讲的重点标记在书上,在下课的时候及时复习,巩固一天学习的内容。再结合MOOC网站上的课程,对于自己掌握不好的知识点,进行反复的观看和琢磨,加深印象。如果对于一些编程上的问题。我会吸取别人在编程上的方法,还有在流程图上绘制方法,并且配合着与同学讨论来解决问题。
2.点评三个同学的本周作业
3.
(1)代码行数、博客园字数和时间
(2)折线图
(3)涉及的知识点
for 语句,while语句,break语句,scanf语句,switch语句,一维数组