第四周预习作业:
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
输入样例:
Let's go to room 209.
输出样例:
5
#include<stdio.h>
int main()
{
char a[1000];
int i,num=0,word=0;
char c;
gets(a);
for(i=0;(c=a[i])!=' ';i++)
if(c==' ') word=0;
else if(word==0)
{
word=1;
num++;
}
printf("%d
",num);
return 0;
}
流程图:
遇到的问题:=-与==弄混了,导致部分答案错误。
然后和搭档一起发现错误并解决了。
gets函数相关知识:
注意事项:gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取/,所以编程时应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。(知识是在百度上找的)
第五周预习作业:
这个作业前四道是书上的知识点,后面的题目就是考察对知识点指针的理解。五六题就是自己脑海里走一遍程序,第六题注意的是一个函数f(p)要返回到上面的void,
最后一个我是用Devc++编译出来的。。。还不是特别理解。疑惑就是这个fun()函数的意义及运用方式。
第五周基础题:
7-1 英文单词排序 (25 分)
本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
输入格式:
输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
输出格式:
输出为排序后的结果,每个单词后面都额外输出一个空格。
输入样例:
blue
red
yellow
green
purple
输出样例:
red blue green yellow purple
新增要求:
基础作业
PTA:英文单词排序
要求:
1.在PTA上完成作业
2.博客总结需要将PTA上代码做以下修改:(1)通过以自己名字命名的文件输入英文单词,(2)英文单词输入的结束标记为你学号最后一位数+37所对应的ASCII字符。(例如:你的学号最后一位为9,则结束标记为9+37=46所对应的ASCII字符“.”)(3)在不删除原有内容的情况下,将排序后的单词输出到文件。
代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
char a[21][11];
int j,k,d=0;
FILE*fp = fopen("C:\Users\15324\Desktop\HA\HA.txt","a+");
while(1){
fscanf(fp,"%s",a[d]);
if (a[d][0] == '%')
break;
d++;
}
fprintf(fp,"
");
for (k = 1;k <= 10;k++)
{
for(j = 0;j < d;j++)
{
if(strlen(a[j]) == k)
fprintf(fp,"%s ",a[j]);
}
}
fclose(fp);
return 0;
}
这次和上次一样的问题,没有找到文件。
这个是因为忘记在输出格式后面加空格了,于是我在输出格式“%s”后面加了
.
流程图:
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
3/1-3/8 | 21h | 182 | 定义文件,以及文件的导入导出和读写 | 数组的运算,输出 |
3/9-3/15 | 22h | 154 | 对文件中数据的提取运用,以及一些嵌套语句的实际用法 | 文件的文件名 |
3/16-3/22 | 32h | 236 | 二维数组数据的处理和输出 | 对一些复杂的循环还有些看不懂 |
3/23-3/29 | 30h | 201 | strlen函数,头文件<string.h>的用法 | 新函数的运用不太熟练 |
挑战题思路:
编程结对总结:和队友一起做题目,效率更快,能相互促进学习,而且有时候有不同的想法,可以尝试,可能会出现许多问题,但是一起去解决就能学到更多知识。受益匪浅,而且会有一种动力去让你学习,因为不是一个人,所以会变得勤奋一点。自从结对后我的博客完成的越来越好。两个人一起干难免有冲突,可能会导致时间上的问题,但是学到的会多。