2019春第五周作业
作业头
| 1 | 2 | |
| -------- | -----: |
| 课程名称 | c语言程序设计2|
| 作业要求 | https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/2825 |
| 我的课程目标 | 我希望通过c语言的学习,实现输出英文单词个数,对单词长度进行排列 |
|这个作业在哪个方面帮助我实现目标|用字符串的存储与运算对英文单词进行计数与排序|
|参考文献|课本c语言程序设计以及谭浩强版c语言程序设计 |
第四周预习作业:
7-1 统计一行文本的单词个数 (15 分)
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
输入样例:
Let's go to room 209.
输出样例:
5
代码:
#include<stdio.h>
int main()
{
char string[1000];
int i,count=0,word=0;
char c;
gets(string);
for(i=0;((c=string[i])!='\0');i++)
if(c==' ') word=0;
else if(word==0)
{
word=1;
count++;
}
printf("%d\n",count);
return 0;
}
设计思路:
错误及改进:
无,根据谭浩强版c语言程序设计p165页改进即可。
答案截图:
英文单词排序
本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
输入格式:
输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
输出格式:
输出为排序后的结果,每个单词后面都额外输出一个空格。
输入样例:
blue
red
yellow
green
purple
输出样例:
red blue green yellow purple
代码:
# include <stdio.h>
# include <string.h>
int main ()
{
int word;
int i,j;
char a[21][11];
char b[11];
for(i=0;;i++)
{
scanf("%s",a[i]);
if(a[i][0]=='#')
break;
}
a[i][0]='\0';
word=i;
for(i=0;i<word;i++)
{
for(j=1;j<word-i;j++)
{
if(strlen(a[j-1])>strlen(a[j]))
{
strcpy(b,a[j-1]);
strcpy(a[j-1],a[j]);
strcpy(a[j],b);
}
}
}
for(i=0;i<word;i++)
{
printf("%s ",a[i]);
}
return 0;
}
文件代码:
# include <stdio.h>
# include <string.h>
# include <stdlib.h>
int main ()
{
FILE*fp;
int word;
int i,j;
char a[21][11];
char b[11];
if((fp=fopen("D:\\yxn.txt","r+"))==NULL)
{
printf("File open error!\n");
exit(0);
}
for(i=0;;i++)
{
fscanf(fp,"%s",a[i]);
if(a[i][0]=='\'')
break;
}
a[i][0]='\0';
word=i;
for(i=0;i<word;i++)
{
for(j=1;j<word-i;j++)
{
if(strlen(a[j-1])>strlen(a[j]))
{
strcpy(b,a[j-1]);
strcpy(a[j-1],a[j]);
strcpy(a[j],b);
}
}
}
fprintf(fp,"\n");
for(i=0;i<word;i++)
{
fprintf(fp,"%s ",a[i]);
printf("%s ",a[i]);
}
if(fclose(fp)){
printf("Can not close the file!\n");
exit(0);
}
return 0;
}
设计思路:
错误及解决:
放到c++上发现是少了空格,然后在%s后加空格。
因为我学号+37得到的符号是 ' 所以要加个\不然就编译错误了。
答案:
第五周预习作业:
预习主要内容:
指针变量的定义;指针的基本运算;指针变量初始化。
疑惑:
对于指针的运算有些头晕,对指针和地址的关系也有点难理解。
学习进度:
感悟:
沉迷作业,日渐变胖。另外strlen和strcpy还没接触过结果基础作业要用,很难受。
结对编程感受:
思路还是打不开,还得多听听助教讲解。