2019春第五周作业

第五周作业

|
-|-
这个作业属于那个课程 | C语言程序设计II
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/computer-scienceclass4-2018/homework/2826
我在这个课程的目标是 | 了解字符串的使用方法
这个作业在那个具体方面帮助我实现目标 | 如何操作字符串
参考文献 | C语言程序设计II

一、本周完成的作业

基础作业

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!\n");
        exit (0);
    }

    while(1){
    	fscanf(fp,"%c",&a[i][j]);
    	if(a[i][j]=='-'){
    		break;
		}
    	if(a[i][j]=='\n'){
    		a[i][j]='\0';
    		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,"\n");
	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!\n");
        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,能够发现对方没发现的错误
缺点:如果不是很熟的人基本无法结对进行编程(随机的搭档那天晚上都没来,后来自由选搭档才能进行)

posted on 2019-03-28 22:47  噫~  阅读(141)  评论(1编辑  收藏  举报

导航