这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/2825 |
我在这个课程的目标是 | 搞定作业,顺手把作业中用到的之前不怎么会的知识学好 |
这个作业在那个具体方面帮助我实现目标 | 解题过程 |
参考文献 | 百度找了一下作业中某些步骤的代码实现方法,如果有我不知道的但是又比较好用的函数就学会这东西怎么用,如果没有就在参考了网络上其他人解法后写一个尽可能好一点的方法 |
7-1 统计一行文本的单词个数 (15 分)
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
输入样例:
Let's go to room 209.
输出样例:
5
#include<stdio.h> #include<string.h> int main() { char a[1000]; gets(a); /*得到字符串a*/ int m,i,flag; m=strlen(a); /*从内存的某个位置开始扫描,直到碰到第一个字符串结束符' '为止*/ if (a[0]==' ') /*排除语句前面开团空格的影响*/ flag=0; else flag=1; for (i=0;i<m-1;i++) { if (a[i]==' '&& a[i+1]!=' ')/*保证空格为两个单词之间的空格*/ flag++; } printf("%d ",flag); /*输出结果*/ return 0; }
7-1 英文单词排序 (25 分)
本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
输入格式:
输入为若干英文单词,每行一个,以#
作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
输出格式:
输出为排序后的结果,每个单词后面都额外输出一个空格。
输入样例:
blue
red
yellow
green
purple
#
输出样例:
red blue green yellow purple
#include<stdio.h> #include<string.h> int main() { char a[20][20],b[10]; int i=0,j,quantity,o; FILE *fp; if((fp=fopen("D:\ocean.txt","w+"))==NULL) //创造文件 { printf("File opren error! "); exit(0); } while(1) { scanf("%s",a[i]); fprintf(fp,"%s,",a[i]); if(a[i][0]=='(') { break; } i++; } fclose(fp); quantity=i; for(i=0;i<quantity;i++) { for(j=i+1;j<quantity;j++) { if(strlen(a[i])>strlen(a[j])) { strcpy(b,a[i]); strcpy(a[i],a[j]); strcpy(a[j],b); } } } if((fp=fopen("D:\ocean.txt","a+"))==NULL) { printf("File opren error! "); exit(0); } for(i=0;i<quantity;i++) { fprintf(fp,"%s,",a[i]); printf("%s ",a[i]); } fclose(fp); return 0; }
四、学习进度条。
周日期 |
所花时间 |
代码行数 |
学到的知识点简介 |
目前比较迷惑的问题 |
3/29 |
5小时 |
89 |
统计一行文本的单词个数和对字符串长度的判定以及在二维数组中如何将其中多个元素组成的字符串进行互换 |
莫得 |
题目挺简单,流程图好麻烦,新知识点获得。挑战题没有做。