第五周作业

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.设计思路图。

1581070-20190329165325272-1533527329.png

3.问题与方法、。

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

4.运行编辑图。

1581070-20190329170230775-1471625115.png
1581070-20190329170333748-195984737.png

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.设计思路图。

1581070-20190329201142180-1169552207.png

3.问题与方法.

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

4.运行编辑图。

1581070-20190329202021957-1643155303.png
1581070-20190329202101061-772119500.png
1581070-20190329202122177-574065162.png

2019春第五周作业—预习。

1581070-20190329202520626-1573036489.png
1581070-20190329202525585-617110883.png
预习:指针的使用。
问题:指针变量的定义以及赋值不确定,特别是进行运算。

学习进度条。

周/日期这周所花的时间代码行学到的知识点简介目前比较迷惑的问题
第一周 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学习一维字符数组的使用,以及二维字符数组的使用,新的标准库函数函数的使用字符与字符串的不同使用,循环结构的嵌套还存在许多问题,以及逻辑思维能力还有待提高

学习感悟。

数组的使用,使问题变得更加简洁,但是其循环结构的使用,逻辑思维能力也因相应的提升。想问题不能在哪么片面,应该从全面开始思考问题,要有全局的思想。

结对编程感悟。

与班上的同学一起编程,可以一起发现自己的问题,遇到想不通的点,可以一起发散思维进行解决,方法变得多起来。而且可以回顾知识点更加的牢固。

转载于:https://www.cnblogs.com/chenanping/p/10623801.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值