zoukankan      html  css  js  c++  java
  • 第七周编程总结

    本次作业所属课程

    C语言程序设计||

    本次作业要求

    https://edu.cnblogs.com/campus/zswxy/MS/homework/2829

    我在这个课程的目标是

    理解指针与数组的关系

    本次学习在哪些具体方面帮组我实现目标

    学会画流程图

    参考文献

    C primer plus第六版

    一、基础题

    题目一:每个单词的最后一个字母改成大写

    1)实验代码

    #include <stdio.h>
    void fun( char *p );
    int main()
    {
      char chrstr[64];  
      int d ;
      gets(chrstr);
      d=strlen(chrstr) ;
      chrstr[d] = ' ' ;
      chrstr[d+1] = 0 ;
      fun(chrstr);
      printf("
    After changing:   %s
    ", chrstr);
      
      return 0;
      
    }
    void fun( char *p )
    {
    
        int i;
    
        for(i=0;*(p+i)!='';p++)
        {
    
            if(*(p+i+1)==' ')
    
            *(p+i)=*(p+i)-32;
    
        }
    
    }

    2)设计思路

    3)本题调试过程中遇到的问题及解决方案

    这题主要卡在了那个大小写转变的问题,查了一下百度,对比了书上后面的ASCII码集,就差不多解决了

    4)运行结果截图

    题目二:自动售货机

    1)实验代码

    #include<stdio.h>
    int main(void)
    {
      char a[10][20] = {"Table-water","Table-water","Table-water","Coca-Cola","Milk","Beer","Orange-Juice","Sprite","Oolong-Tea","Green-Tea"};
      int static b[11];
      int c[100];
      int i=1,sum=0,money,j=0,change,flag=0;
      
      scanf("%d",&money);                 
    
      while((money!=-1)&&(money<=10))
      {
        sum += money;
        scanf("%d",&money);
      }
      
      scanf("%d",&c[i]);
      while(c[i]!=-1)        
      {
        switch(c[i])
        {
        case 1: j = j + 1;break;
        case 2: j = j + 1;break;
        case 3: j = j + 1;break;
        case 4: j = j + 2;break;
        case 5: j = j + 2;break;
        case 6: j = j + 3;break;
        case 7: j = j + 3;break;
        case 8: j = j + 3;break;
        case 9: j = j + 4;break;
        case 10: j = j + 4;break;
        default:break;
        }
        if(j>sum)
        {
          printf("Insufficient money");
          flag = 1;
          break;
        }
        i++;
        scanf("%d",&c[i]);
      }
      change = sum-j;
      i = 1;
      while(c[i]!=-1)
      {
        switch(c[i])
        {
          case 1: b[1]++;break;
          case 2: b[2]++;break;
          case 3: b[3]++;break;
          case 4: b[4]++;break;
          case 5: b[5]++;break;
          case 6: b[6]++;break;
          case 7: b[7]++;break;
          case 8: b[8]++;break;
          case 9: b[9]++;break;
          case 10:b[10]++;break;
          default:break;
        }
        i++;
      }
      if(flag==0)              
      {
        printf("Total:%dyuan,change:%dyuan
    ",sum,change);
        for(i=1;i<=10;i++)
        {
          if(b[i]==0)
            continue;
          else
          {
            printf("%s:%d;",a[i-1],b[i]);
          }
        }
      }
      return 0;
    }

    2)设计思路

       

    3)本题调试过程中遇到的问题及解决方案

    这题有点难,借鉴了别人的思路,一开始数组长度小了,后面在输出的if语句的判断条件又出了点问题,不过最后还是解决了,只是调试的过程有点漫长

    4)运行结果截图

    二、预习题

    题目一:使用函数删除字符串中的字符

    1)实验代码

    #include<stdio.h>
    void delchar(char str[],char op);
    int main()
    {
        int repeat;
        char str[80],op;
    
        scanf("%d
    ",&repeat);  
        while(repeat--)
        {
            gets(str);  
            scanf("%c",&op); 
            printf("result: ");
            delchar(str,op);
        }
    
        return 0;
    }
    
    void delchar(char str[],char op) 
    {
        while(*str!='')  
        {
            if(*str!=op)  
            {
                putchar(*str);  
            }
            str++;  
        }
    }

    2)设计思路

     

    3)本题调试过程中遇到的问题及解决方案

    这一题在PTA上的正确答案到Dev答案又变成错误的了,调试的过程中各种问题都出来了,主要是这题在自定义函数里面输出不是特别理解,借鉴了下别人的思路

    4)运行结果截图

    三、挑战题

    题目一:子数组” 并不要求是一个矩形, 而是联通的元素即可 (上下或左右相邻即视为联通), 那解法会是怎么样呢?

    自己有几把刷子心里还是有点逼数的,挑战题不会写,大概的写点思路吧:逐个查找,将他们的路径连接起来在逐个判断

    四、学习进度条

    时间

    这周所花时间

    代码行数

    学到的知识简介

    目前比较迷惑的问题

    第一周

    5小时

    80

    初步了解数组

    数组的引用

    第二周

    6小时

    200

    指针的了解

    完全没听懂老师上课在讲什么,继续努力

    第三周

    7小时

    200

    文件与数组的使用

    没看到代码运行后文件的内容发生改变

    第四周

    9小时

    120

    冒泡法,选择排序法

    冒泡法不会

    第五周

    9小时

    120+

    字符型数组

    把代码改成文件格式

    第六周

    4小时

    130左右

    指针

    指针的调用

    第七周

    6小时+

    200

    指针与数组

    指针与数组的连续有点模糊

     五、累积博客字数及代码行数

    六、结对编程感想

    这次的题目就充分体现了我们两个人自身能力不足的缺点,题目难度偏大,两个人都做不出,思路也是乱七八糟,互相拖后腿

    总结:这次的题目自我感觉偏难,做了很久效果还不明显

  • 相关阅读:
    jupyter notebook 远程连接访问服务器
    spark py4j.protocol.Py4JNetworkError: An error occurred while trying to conn
    cudart64_101.dll not found解决方法
    windows tensorflow无法下载Fashion-mnist的解决办法
    dataframe apply函数多个结果拆分给多列
    tensorflow安装
    pandas DataFrame中agg聚合后重命名列标题
    操作系统-第五章-进程调度
    操作系统-第四章-多线程编程
    操作系统-第三章-进程
  • 原文地址:https://www.cnblogs.com/wangweihanqq2001/p/10698320.html
Copyright © 2011-2022 走看看