zoukankan      html  css  js  c++  java
  • C博客作业01--分支、顺序结构

    这个作业属于哪个班级 C语言网络2011,2012
    这个作业的地址 C博客作业01--分支、顺序结构
    这个作业的目标 初步认识C语法,掌握数据表达、printf、scanf语法及分支结构内容

    0.展示PTA总分(0----2)


    1.本章学习总结(4分)

    1.1 学习内容总结(2分)

    这两周主要学习的事分支、顺序结构

    分支结构

    1.二分支结构和if_else语句
    • if(表达式)
      语句 1;
      else
      语句2;
    • if(表达式)
      语句 1;
    2.多分支结构和else-if语句
    • if(表达式1)
      语句1;
      else if(表达式2)
      语句2;
      ...
      else if(表达式n-1)
      语句n-1;
      else
      语句n;
    3.switch语句

    switch(表达式)
    {
    case 常量表达式 1:语句段1;break;
    case 常量表达式 2:语句段2;break;
    ...
    case 常量表达式 n:语句段 n;break:
    default; 语句段 n+1;break;
    }

    逻辑运算

    • !逻辑非
    • &&逻辑与
    • ||逻辑或

    字符型变量的输入和输出

    • 变量类型char
    • 在scanf()中用%c读入
    • 输入表达式时用''

    1.学习随机函数使用

    srand(time(0)); //设置随机数种子
    rand()%100;//产生100以内的随机数
    案例:猜数游戏

    1.2 编程技巧总结(1分)

    一个整数是由1至多位数字组成的,如何分解出整数的各个位数上对应的数字,然后加以计算

    • 对一个整数做%10的操作,就会得到他的个位数;
    • 对一个整数做/10 的操作,就去掉了它的个位数;
    • 然后再对2的结果做%10,就得到原来的十位数了;
    • 以此类推
      案例:


    交换两个数字的做法:

    temp=a;
    a=b;
    b=temp;
    

    案例:输入3个数,输出中间数

    1.3 本章学习体会(1分)

    本章主要学习了几种分支结构,在写pta的过程中,我遇到了一些问题,如switch case语句中:
    1.忘记加大括号导致的错误
    2.使用了两个switch case 语句,却只有一个swich

    改正后如下:

    计算这两周代码量

    2.PTA实验作业(6分)

    介绍下面3个题目的做法。

    2.1 前天是哪天
    2.1.1 数据处理
    数据表达:
    变量:输入的年份int year
    输入的月份int month
    输入的日int day
    数据处理:
    如果day大于3
    { day=day-2
    输出年月日}
    否则判断month
    如果前一个月是小月
    month=month-1;
    day=30-2+day;
    如果month的前一个月是大月
    month=month-1;
    day=31-2+day;
    如果month=1
    year=year-1;
    month=12;
    day=31-2+day;
    如果month=3前一个月是2月
    如果当年是闰年
    month=month-1;
    day=29-2+1;
    否则
    month=month-1;
    day=28-2+1;

    2.1.2 代码截图

    2.1.3 PTA提交列表及说明
    1.忽略了8月虽然是大月,但八月的前一个月7月仍是大月,应该将八月放到前一个月是小月的区域处理

    2.判断月份中应该用if_else语句而不是并列的if语句,如果用并列的if语句,当月份为5,7,10,12时,条件符合进入第一个循环,这里以月份为5时为例

    if (month == 5 ||month== 7 ||month== 10 ||month== 12)
    		{
    			month = month - 1;
    			day = 30 - 2 + day;//跨月份到小月
    		}
    

    经过此循环月份变为4,符合第二个循环,进入第二个循环

    if (month == 2 ||month== 4 ||month== 6 || month==9||month==11||month==8)
    		{
    			month = month - 1;
    			day = 31- 2+ day;//跨月份到大月
    		}
    

    这样月份就变成了3,显然不是我们想要得到的4月,因此答案错误

    正确的办法应该是使用else_if语句处理

    2.2 计算油费

    2.2.1 数据处理

    数据处理:
    常量:6.95 7.44 7.93 0.05 0.03
    整型变量:加油量gas
    汽油品种type
    服务类型type
    浮点型变量:double
    字符型变量:服务类型service
    数据表达:
    1.输入加油量,汽油品种,服务类型
    2.判断汽油品种,如果汽油品种为90,money等于6.95 * gas
    否则的话如果汽油品种为93
    money等于7.44乘以汽油量
    否则的话如果如果汽油品种为97
    money等于7.93gas
    3.判断服务类型,如果服务类型m,money=money
    (1-0.05)
    否则的话money=money*(1-0.03)

    2.2.2 代码截图



    2.2.3 PTA提交列表及说明

    1.输入变量的时候没有加取地址符&&导致错误

    2.在else后面加了条件导致错误

    2.3 出租车计费

    题目:

    2.3.1 单步调试截图


    发现没有进入本应该进入的循环,直接跳过了,是判断条件在临界的情况出现了错误,应该改为

    2.3.2 代码截图

    2.3.3 PTA提交列表及说明
    错误代码


    通过调试改正,临界状态出错

  • 相关阅读:
    【模板】扩展中国剩余定理(EXCRT)
    战略游戏(树形DP)
    二叉苹果树(树形DP)
    货车运输(最大生成树,LCA)
    [CQOI2016]密钥破解
    Pollard-Rho算法andMiller_Rabin算法
    [TJOI2009]猜数字(中国剩余定理)
    中国剩余定理(学习笔记)
    线段树 Segment Tree
    辗转相除法
  • 原文地址:https://www.cnblogs.com/zjw123/p/13938629.html
Copyright © 2011-2022 走看看