第五周作业
这个作业属于那个课程 |
这个作业要求在哪里 |
我在这个课程的目标是 |
这个作业在那个具体方面帮助我实现目标 |
参考文献 |
一、本周完成的作业
基础作业
7-1 英文单词排序 (25 分)
本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。
输入格式:
输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。
输出格式:
输出为排序后的结果,每个单词后面都额外输出一个空格。
输入样例:
blue
red
yellow
green
purple
#
输出样例:
red blue green yellow purple
1).实验代码(修改过的)
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp;
char a[1000][1000];
int b[20],c[20];
int i=0,j=0,k,x=0,y=0,s=0;
if((fp=fopen("E:\zwx.txt","a+"))==NULL){
printf("File open error!
");
exit (0);
}
while(1){
fscanf(fp,"%c",&a[i][j]);
if(a[i][j]=='-'){
break;
}
if(a[i][j]=='
'){
a[i][j]=' ';
b[s]=i;
c[s]=j;
s++;
i++;
j=0;
}
else{
j++;
}
}
for(i=0;i<s;i++)
{
for(j=1;j<s;j++)
{
k=j-1;
if(c[j]<c[k]) {
x=c[j];
y=c[k];
c[j]=y;
c[k]=x;
x=b[j];
y=b[k];
b[j]=y;
b[k]=x;
}
}
}
fprintf(fp,"
");
for(i=0;i<s;i++){
x=b[i];
printf("%s ",a[x]);
fprintf(fp,"%s ",a[x]);
}
if(fclose (fp)){
printf("Can not close the file!
");
exit (0);
}
return 0;
}
2) 设计思路
3).本题调试过程碰到问题及解决办法
a.错误问题截图:
b.问题及其解决办法:
问题:有一个答案错误
解决办法:把b[i]和c[i]定义的大一些就可以了
4).运行结果截图:
5)出现了特别的状况
在进行按要求修改代码的时候,一直无法将数据输入文件,但是读取仍然是正常的,fprintf函数不管用,百度的方法全都不管用,可是程序是可以正常运行的
运行前
运行后
不知道是不是我文件用法有误这里实在没办法,希望老师和助教能在评论告诉我错误在哪里.
预习作业
预习的主要内容
指针的用法和定义
完成情况截图
预习中存在的疑惑
1,指针的用处是什么
2,指针能给我带来什么样的便利
二、学习进度条
周/日期 | 这周所花的时间 | 代码行 | 学到的知识点简介 | 目前比较迷惑的问题 |
---|---|---|---|---|
3/15-3/22 | 15小时 | 350左右 | 学会处理数组的数据 | 对于指针还有很多不理解 |
3/22-3/29 | 12小时 | 300左右 | 学会使用字符串 | 对于指针还是有很多不理解 |
三、学习感悟
这周学习了字符串的运用,知道了字符串的用法,一开始是没有使用字符串来做基础作业的(虽然也是对的),但是使用字符串能够让我的代码更加简洁,就改用字符串了.
难点是文件的输入,一直没办法输入,但是以我的判断来说是可以输入的,找了半天还是无法把问题解决,只能等老师或者助教,字符串刚开始用也是有点懵,调试了几次就知道是什么样的了.
挑战作业看不懂应该要怎么做,作业要求都不知道是什么,大致的思路也没有,看来我的c语言的"道行"还不够,要进一步的学习.
四、结对编程
结对编程的优缺点
优点:1,可以让思路更广
2,能够帮助对方不知道的代码
3,能够发现对方没发现的错误
缺点:如果不是很熟的人基本无法结对进行编程(随机的搭档那天晚上都没来,后来自由选搭档才能进行)