这个作业属于哪个课程 | C语言程序设计Ⅱ |
---|---|
这个作业要求在哪里 | 2019春第五周作业 |
我在这个课程的目标是 | 能够灵活运用所学的知识 |
这个作业在哪个具体方面帮助我实现目标 | 促使我学习还没有教的部分 |
参考文献 | xyt0220168的博客 |
基础作业
英文单词排序
本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
输入格式:
输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
输出格式:
输出为排序后的结果,每个单词后面都额外输出一个空格。
1)实验代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(void)
{
int i,j,count;
char b[11],a[21][11];
FILE *fp;
if((fp=fopen("D:\liulei.txt","a+"))==NULL)
{
printf("File open error!
");
exit(0);
}
while(1)
{
fscanf(fp,"%s",a[i]);
if(a[i][0]=='-')
break;
i++;
}
a[i][0]='-';
count=i;
for(i=0;i<count;i++)
{
for(j=1;j<count-i;j++)
{
if(strlen(a[j-1])>strlen(a[j]))
{
strcpy(b,a[j]);
strcpy(a[j],a[j-1]);
strcpy(a[j-1],b);
}
}
}
fprintf(fp,"
");
for(i=0;i<count;i++)
{
fprintf(fp,"%s ",a[i]);
}
if(fclose(fp))
{
printf("Can not close the file!
");
exit(0);
}
return 0;
}
2)设计思路
3)本题调试过程中碰到问题及解决办法
问题:不知道怎样按照输入样例输入单词,计算字符串的长度进行比较,但不知道怎样把比较的结果以字符串的形式输出。
解决办法:通过在网上找资料发现C语言中有调用字符串的头文件及处理字符串的函数,在书上找到该头文件及相关函数的使用方法后,进行编程。
4)运行结果截图
第四周预习题
统计一行文本的单词个数
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
1)实验代码
#include<stdio.h>
#include<string.h>
int main(void)
{
int i,len,num;
char a[1000];
gets(a);
len=strlen(a);
if(a[0]==' ')
num=0;
else
num=1;
for(i=0;i<len-1;i++)
{
if(a[i]==' '&&a[i+1]!=' ')
num++;
}
printf("%d",num);
return 0;
}
2)设计思路
3)本题调试过程中碰到问题及解决办法
问题:不知道怎样输入字符串,对判读的条件有疑惑,例如“ ’ ”的判断。
解决办法:借鉴彭琛老师的代码。
4)运行结果截图
第五周预习题
1)预习内容
指针变量的含义:专门用来存放变量地址的变量,用来实现间接访问;
指针的定义:类型名 * 指针变量名;
指针变量的赋值:指针的赋值是地址,int *p=&i。
2)作业截图
3)预习中的存在的疑惑
指针的调用过程还不怎么清楚。
学习进度条
周/日 | 这周所花的时间 | 代码行数 | 学到的知识点简介 | 目前比较迷茫的问题 |
---|---|---|---|---|
3/11-3/15 | 6小时 | 57 | 指针的定义与调用 | 无 |
3/18-3/22 | 8小时 | 80 | 二维数组的定义与调用 | 无 |
3/25-3/29 | 6小时 | 54 | 调用处理字符的函数 | 无 |
学习感悟
在解决一些问题的时候,我们经常会用我们已有的知识去解决,但是往往会把问题复杂化,因此,要多积累知识。