2019第五次作业
作业头
第四周预习题
7-1 统计一行文本的单词个数 (15 分)
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
输入样例:
Let's go to room 209.
输出样例:
5
一、实验代码
#include<stdio.h> #include<string.h> int main() { int i,c=0; char a[1000]; gets(a); if(a[0]==' ') c=0; else c=1; for(i=0;a[i]!='\0';i++) { if(a[i]==' ' && a[i+1]!=' ' && a[i+1]!='\0') { c++; } } printf("%d\n",c); return 0; }
二、设计思路
三、错误截图
问题:在c++编译器里gets不能运行。
解决方法:换一个编译器。
四、运行结果
第五周基础题
7-1 英文单词排序 (25 分)
本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
输入格式:
输入为若干英文单词,每行一个,以#
作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
输出格式:
输出为排序后的结果,每个单词后面都额外输出一个空格。
输入样例:
blue
red
yellow
green
purple
#
输出样例:
red blue green yellow purple
一、实验代码
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { FILE *fp; int i,j,index,num; char a[20][10],temp[11]; num=0; fp = fopen("F:\\xuezhiqian.txt", "a+"); while(1) { fscanf(fp,"%s",&a[num]); if(a[num][0]=='*') //学号最后一位数字为5,加上37为42,则ASCII码为* break; num++; } for(i=0;i<num-1;i++) { index=i; for(j=i+1;j<num;j++) { if(strlen(a[j])<strlen(a[index])) { index=j; } } strcpy(temp,a[index]); strcpy(a[index],a[i]); strcpy(a[i],temp); } for(i=0;i<num;i++) { fprintf(fp,"\n%s ",a[i]); } fclose(fp); return 0; }
二、设计思路
三、错误截图
问题:在电脑c盘中不能运行数据只能读取数据。
解决方法:将输入数据存到F盘中
四、运行结果
第五周预习题
预习题主要讲的是数据存储位置
学习进度条
学习感悟
在本单元学习了冒泡法排序,以及文档读取运行数据,但是从本人看来,这些都还不是特别了解,都还只是一个懵懂的状态。