zoukankan      html  css  js  c++  java
  • 第五周作业1

    这个作业属于那个课程 C语言程序设计II
    这个作业要求在哪里 要求我们掌握二维数组,可以更好的运用它
    我在这个课程的目标是  学懂C语言,会编程一些简单的小应用
    这个作业在那个具体方面帮助我实现目标  这个作业让我学懂了二维数组的运用
    参考文献
    https://blog.csdn.net/mathew_leung/article/details/80382098

    第四周预习作业

    统计一行文本的单词个数

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

    输入格式:

    输入给出一行字符。

    输出格式:

    在一行中输出单词个数。

    输入样例:

    Let's go to room 209.

    输出样例:

    5 

    1)代码

        

    #include<stdio.h>
    #include<string.h>
    int main()
    {
      int i,n,c=0;
      char a[1000];
      gets(a);
      if(a[0]==' ')
        c=0;
      else
        c=1;
      for(i=0;a[i]!='';i++)
      {
        
        if(a[i]==' ' && a[i+1]!=' ' && a[i+1]!='')//计算单词字数
        {
             c++;
        }
      }
      printf("%d
    ",c);
      return 0;
    }

    2)流程图

           

    3)本题调试过程中碰到的问题及解决办法

          问题:char a[]的储存值取小了,导致运行超时

         解决办法:因为a[]的储存值越大越好,取较大的储存值

    4)运行结果截图

         

    第五周基础作业

    英文单词排序

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

    输入格式:

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

    输出格式:

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

    输入样例:

    blue
    red
    yellow
    green
    purple
    #

    输出样例:

    red blue green yellow purple 

    1)代码

    
    
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main(void)
    {
        FILE * fp;
        char a[21][11];
        char b[11];
        int j,k,d,i=0;
        if((fp=fopen("C:\safemon\Xinea.txt","w+"))==NULL)//打开文件 
        {
            printf("Flie open error!
    ");
        } 
        while(1){   //输入字符串到‘#’结束
          scanf("%s",a[i]);
          fprintf(fp,"%s
    ",a[i]);//把数据从屏幕输入到文件里 
          if (a[i][0]=='&')//我学号最后一位数字是1;1+37的ASCII字符是&
            break;
          i++;
        }
        a[i][0]='';
    fprintf(fp," ");
    for (k=0;k<i-1;k++) //用的是选择排序法 { d=k; for(j=k+1;j<i;j++) { if(strlen(a[j])<strlen(a[d])) //函数strlen()用来计算字符串长度 { d=j; } } strcpy(b,a[d]); //函数strcpy()用来把数组a中的字符串复制给数组b strcpy(a[d],a[k]); strcpy(a[k],b); } for(k=0;k<i;k++)//输出储存在数组b中的字符串 printf("%s ",a[k]); fprintf(fp,"%s ",a[k]);//把数据输入到文件里 if(fclose(fp))//关闭文件 { printf("Can not close the file! "); exit(0); } return 0; }

      

    2)流程图

        

    3)本题调试过程中碰到的问题及解决办法

         问题:开始时我写的是:b=a[d]  a[d]=a[k] a[k]=b,导致编译错误

         解决办法:查了百度说赋值是无效的,因为即使不发生错误,之后的程序还是会访问在结构体内的数组也就是原来数组的内容 ,

                        可以用函数strcpy(),复制外部数组的值到结构体中的数组里;

    4)运行结果截图

    第五周预习题

    2-1

    下列语句定义 x 为指向 int 类型变量 a 的指针,正确的是()。 (2分)

     
    2-2

    int *p 的含义是 (2分)

     
    2-3

    如果有定义:int m, n = 5, *p = &m; 与m = n 等价的语句是 () 。 (1分)

     
     
    2-4

    变量的指针,其含义是指该变量的( )。 (1分)

     
    2-5

    有如下程序段

    int *p,a=10,b=1;
    p=&a; a=*p + b;
    

    执行该程序段后,a的值是 (2分)

     
     
    2-6
     对于下列程序,正确的是() 。 (2分)
    void f(int *p)
    {
          *p = 5;
    }
    int main(void)
    {
          int a, *p;
    
          a = 10;
          p = &a;
          f(p);
          printf(“%d”, (*p)++);
    
          return 0;
    }
    
     
    2-7

    执行如下程序段,打印输出的内容是: (2分)

    #include <stdio.h>
    void fun (int c, int *d) {
        c++;
        (*d)++;
    }
    int main ( ){
        int a=5, b=9;
        fun(a, &b);
        printf("%d, %d", a, b);
        return 0;
    }
    

     

     

     

    第五周挑战题

           由上周的求数组的最大子数组和,我们可知它的最简单的原型是求一维数组中的最大值。那么基于这个启发,我们可以把问题从二维数组转化为一维数组来求最大数组。

    结对编程

    1)结对编程的感悟

           结对编程让我们相互分享各自的观点,互相学习编程技巧;还可以让我们互相监督,不容易偷懒

    2)结对编程碰到的问题

        我们对第四周的预习题思路不一样,无法统一意见;最后还是相互退让

           



      第二周 第三周 第四周 第五周

    字数

    548 661 1145  1242
    代码行数 37 55 100  54

     

    学习进度条
    日期 花的时间 行数页码 学到的知识 日期的疑惑
    3/1-3/7 4个小时 148-155

    数组的定义与运用

    3/9-3/15 4个小时 298-303

    文件定义和文件数据的处理

    3/18-3/22 4个小时 155-165

    一维数组的排序方法

    二维数组的运用

    3/23-3/28 四个小时  166-172  字符串的储存方法,和字符串的运用  将字符串改成十进制输出





    学习总结
    这周的pta作业相比相对与上周的作业少了一些,难度也少了一些,上周的预习题老师稍微讲了一点,认真写的话可以做出来;但这周的基础题有难度,这周的基础题令我有成就感的是,经过我参考别人的编程学会了一个新的函数strcpy(),并运用到这周的基础题上了。

         

  • 相关阅读:
    Ubuntu14.04安装ROS Indigo
    STM32F103移植uCOSIII始终卡在PendSV或Systick处解决办法
    STM32F103移植uCOSIII始终卡在PendSV或Systick处解决办法
    WIN7下PS/2等键盘失灵无法使用的解决办法--实测有效
    WIN7下PS/2等键盘失灵无法使用的解决办法--实测有效
    在altium designer9 等中使用protell99se的如0805,0603等PCB封装库
    在altium designer9 等中使用protell99se的如0805,0603等PCB封装库
    VB将输入文本框的数字分割并按十六进制发送
    Windows 10同步时间的方法
    maven安装cucumber的pom文件设置
  • 原文地址:https://www.cnblogs.com/hunan-hengyang/p/10610146.html
Copyright © 2011-2022 走看看