第五周作业

2019春季作业

这个作业属于哪里 c语言程序设计
这个走也要求在哪里 https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/2824
我在这个课程的目标是 可以更加好的使用一维字符数组,以及二维数组
这个作业在那个具体的方面帮助我实现目标 这次的作业让我学会字符数组的使用,以及新的标准库函数strcpy
参考文献 回文判断,字符串,数组

2019春第四周作业(预习题)

本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。

输入格式:

输入给出一行字符。

输出格式:

在一行中输出单词个数。

输入样例:

Let's go to room 209.

输出样例:

5

1.代码。

#include<stdio.h>
#include<string.h>
int main(void)
{
  char str[1000];
  int i,k,count;
  k=0;
  while((str[k]=getchar())!='\n')
    k++;
  str[k]='\0';
   if(str[0]==' ')
	  count=0;
  else
count=1;
  for(i=0; i<k-1; i++)
  {
    if(str[i]==' '&&str[i+1]!=' ')
    count++;
  }
  printf("%d\n",count);
  return 0;
}

2.设计思路图。

3.问题与方法、。

问题:运行的结果会超时。
方法:因为第一个for语句输入字符串的时候,getchar前面有两个等号,本来应该是只有一个等号。
问题:前面有两个空格或多个空格无法判断。
方法:在if的判断语句中不应该有i>0的条件。

4.运行编辑图。


2019春第五周作业—基础题(软件)。

7-1 英文单词排序 (25 分)
本题要求编写程序,输入若干英文单词,对这些单词按长度从小到大排序后输出。如果长度相同,按照输入的顺序不变。

输入格式:

输入为若干英文单词,每行一个,以#作为输入结束标志。其中英文单词总数不超过20个,英文单词为长度小于10的仅由小写英文字母组成的字符串。

输出格式:

输出为排序后的结果,每个单词后面都额外输出一个空格。

输入样例:

blue
red
yellow
green
purple
#

输出样例:

red blue green yellow purple 

1.pta代码。

#include<stdio.h>
#include<string.h>
int main(void)
{
	char a[20][11];
	char c[11];
	int i,k,j;
	
	i=0;
	k=0;
	
    while(1)
	 {
    	scanf("%s",a[i]);
    	if(a[i][0]=='#')
    	break;
    	i++;
	}
	a[i][0]='\0';
	
	j=i;
	for(i=0; i<j; i++)
	{
		for(k=1; k<j-i; k++)
		{
			if(strlen(a[k-1])>strlen(a [k]))
			{
				strcpy(c,a[k-1]);
				strcpy(a[k-1],a[k]);
				strcpy(a[k],c);
				
			}
		}
	}
	for(i=0; i<j; i++)
	printf("%s ",a[i]);
	
	return 0;
 } 

文件代码。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(void)
{
	 FILE * fp;	
	 if((fp=fopen("C:\\cap\\cap.txt","a+"))==NULL){
    printf("File open error!\n");
    exit(0);
    }
     char a[20][11];
	char c[11];
	int i,k,j;
	
	i=0;
	k=0;
	
    while(1)
	 {
    	fscanf(fp,"%s",a[i]);
    	if(a[i][0]=='%')
    	break;
    	i++;
	}
	a[i][0]='\0';
	
	j=i;
	for(i=0; i<j; i++)
	{
		for(k=1; k<j-i; k++)
		{
			if(strlen(a[k-1])>strlen(a [k]))
			{
				strcpy(c,a[k-1]);
				strcpy(a[k-1],a[k]);
				strcpy(a[k],c);
				
			}
		}
	}
	for(i=0; i<j; i++)
	fprintf(fp," %s",a[i]); 
	  if(fclose(fp))
    {
    printf("Can not close the file!\n");
    exit(0);
    }
	return 0;
 } 

2.设计思路图。

3.问题与方法.

问题:出现段错误,以及运行超时、
方法:我的for(k=1;k<j=i;k++)中,将k++写成了i++。

4.运行编辑图。



2019春第五周作业—预习。



预习:指针的使用。
问题:指针变量的定义以及赋值不确定,特别是进行运算。

学习进度条。

周/日期 这周所花的时间 代码行 学到的知识点简介 目前比较迷惑的问题
第一周 2.23-3.2 三天 40 一维数组的定义和使用;一维数组的初始化;以及使用一维数组编程 一维数组的定义,以及字符的定义,不能很好的定义;以及使用for循环语句输入数值,字符,觉得不是很得心应手
第二周 3.3-3.9 四天 70 使用文件来编程;了解文件的概念;文本文件与二进制文件;缓冲文件系统;文件的结构与文件类型指针;文件的打开方式 文件的输入输出,无法确保其输入输出,总是会忘记再加上fscanf与fprintf;以及文本的使用,不知道如何更好地使用
第三周 3.10-3.16 三天 80 预习二维数组;了解其定义与引用; 了解其用法与初始化 文件的使用还有很大的问题,总是会出现无法打开其文件的错误;二维数组则是下标的确立有问题
第四周 3.17-3.22 四天 60 学习二维数组定义,初始化以及选择排序法,自主学习冒泡排序法 自定义函数的使用还存在很大的问题
第四周 3.23-3.29 三天 70 学习一维字符数组的使用,以及二维字符数组的使用,新的标准库函数函数的使用 字符与字符串的不同使用,循环结构的嵌套还存在许多问题,以及逻辑思维能力还有待提高
#学习感悟。 数组的使用,使问题变得更加简洁,但是其循环结构的使用,逻辑思维能力也因相应的提升。想问题不能在哪么片面,应该从全面开始思考问题,要有全局的思想。 #结对编程感悟。 与班上的同学一起编程,可以一起发现自己的问题,遇到想不通的点,可以一起发散思维进行解决,方法变得多起来。而且可以回顾知识点更加的牢固。
posted @ 2019-03-29 20:44  平安2  阅读(297)  评论(1编辑  收藏  举报