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

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

    0.展示PTA总分


    1.本章学习总结

    1.1学习内容总结

    • **if else & switch case **

      用法:

      1、if(判断条件){语句}

      2、if(判断条件) {语句}else {语句}

      3、if(判断条件) {语句}else if (判断条件) {}···

      4.switch(i)

      {

      case 1:语句break;

      case 2:

      ···

      default:···

      }

      注意点:

      在连续使用&&、||时注意条件判断是否合理不要漏打符号

      在判断变量是否为零时注意判断方式

      switch case 语句中case后面不能接式子

    • 函数

      幂函数:pow(x,n)

      平方根:sqrt(x)

      绝对值:fabs(x)

      随机函数:srand(time(0));

      srand()为生成一个随机数,time(0)则是改变随机数生成种子进而随时间变化生成不同的随机数

    • 数据输入

      数据类型 占用内存(字节) 输入 输出
      int(整数) 4 %d %d
      double(双精度) 8 %lf %f
      float(单精度) 4 %f %f
      char(字符) 1 %c %c

    1.2编程技巧总结

    • 取某一位数各位做法

      将该数用10取余即可;

      在配合/10混合使用可分离一个数的不同位的数

      #include<stdio.h>
      int main()
      {
          int x,a,b,c;
          scanf("%d",&x);
          a=x/100;
          x=x%100;
          b=x/10;
          c=x%10;
          printf("%d,%d,%d",a,b,c);
          return 0;
      }
      
    • 判断整除

      用10取余被判断的数在判断余数是否为零

      #include<stdio.h>
      int main()
      {
          int N,M;
          scanf("%d %d",&M,&N);
          if(M%N==0)
          {
              printf("YES");
          } else
          {
              printf("NO");
          }
          return 0;
      }
      
    • 比较大小

      通过判断将最大数或最小数放在一个自变量中在逐步判断即可

      #include<stdio.h>
      int main()
      {
          int a,b,c,i;
          scanf("%d %d %d",&a,&b,&c);
          if(a>b)    
      	{
      	i=a;
      	a=b;
      	b=i;
      	}	
      	if(a>c)
      	{ 
          i=a;
          a=c;
          c=i;
      	}
          if(b>c)
      	{
      		i=b;
      		b=c;
      		c=i;
      	 } 
          printf("x=%d,y=%d,z=%d",a,b,c);
          return 0;
      } 
      

    1.3本章学习体会

    • 总的来说分支结构不难但是细节多,在重复使用时容易出现错误,而PTA的难度不均衡,容易导致在某一道题目上无法突破。
    • 总计约40道左右

    2.PTA实验作业

    2.1 前天是哪天

    2.1.1 数据处理

    • 先区分闰年在逐一对每个月进行判断。

    • 数据表达:year,month,day,类型为整数型。

    • 表达式:主要用到了取余和分支结构的if else。

    2.1.2 代码截图

    #include<stdio.h>
    int main()
    {
        int year, month, day;
        scanf("%d-%d-%d",&year,&month,&day);
        if (day > 2)
        {
            day = day - 2;
        }
        else
        {
            if (month == 5 || month ==7 || month ==8 || month ==10 || month ==12)
            {
                day = day - 2 + 30;
                month = month - 1;
            } else if (month == 2 || month ==4 || month ==6 || month ==9 || month ==11)
            {
                day = day - 2 + 31;
                month = month - 1;
            } else if (month == 1)
            {
                day = day - 2 + 31;
                month = 12;
                year = year - 1;
            } else if (month == 3)
            {
                if (year % 4 == 0) 
                {
                    if(year%100==0)
                    {
                        if (year % 400 == 0)
                        {
                            month = month - 1;
                            day = day - 2 + 29;
                        } else 
                        {
                            month = month - 1;
                            day = day - 2 + 28;
                        }
                    } else
                    {
                        month = month - 1;
                        day = day - 2 + 29;
                    }
                } else
                {
                    month = month - 1;
                    day = day - 2 + 28;
                }
            }
        }
        printf("%d-%d-%d", year, month, day);
        return 0;
    }
    

    2.1.3 PTA提交列表及说明

    • 编译错误:有输入没加&或者未加;
    • 部分正确:将大月与小月的运算式弄反,闰年判断错误,二月进位错误。

    2.2 自选一题,内容要和字符型数据处理有关的题目

    2.2.1 数据处理

    • 设置变量:ch(记录字符),sign(记录空格),len(用来记录输出单词长度),flag(作为一个标志符)
    • 先记录字符长度但输入空格时停止输出字符长度即为一个循环,后再继续运行直到输入句号为止。

    2.2.2 代码截图

    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
        char ch;
        char sign = ' ';
        int len;
        int flag;
        len = 0;
        flag = 0;
        while( (ch=getchar())!='.'){
            if(ch!=' ') len++;
            else if(len!=0){ 
                if(flag!=0) putchar(sign); 
                flag = 1;
                printf("%d",len);
                len = 0;
            }else{
                continue;
            }
     
        }
        if(flag==1 && len!=0) putchar(sign);
        if (len) printf("%d",len);
        return 0;
    }
    
    

    2.2.3 PTA提交列表及说明

    • 先在VS上经过调试,遇到过任何停止计数输出长度问题。

    2.3 自选一题,介绍单步调试如何检查错误

    2.3.1 单步调试截图

    经过debug得money2运算后值为零,应改变运算类型。

    2.3.3 PTA提交列表及说明

    #include<stdio.h>
    int main()
    {
        double length, money1, money2, money;
        int time;
        scanf("%lf %d",&length,&time);
        if(length<=3)
        {
            money1 = 10;
            money2 = (time / 5) * 2;
            money = money1 + money2;
        }
        else if(length<=10)
        {
            money1 = 10 + (length - 3) * 2;
            money2 = (time / 5) * 2;
            money = money1 + money2;
        }
        else
        {
            money1 = 24 + (length - 10) * 3;
            money2 = (time / 5) * 2;
            money = money1 + money2;
        }
        printf("%.0f", money);
        return 0;
    }
    
  • 相关阅读:
    Discuz上传错误
    Node.js程序在node-windows中不能运行
    如何开机就启动node.js程序
    创建并发布node.js module
    Windows下安装mongodb
    Grunt学习一:使用grunt创建jquery plugin.
    如何用 Jquery实现OuterHtml
    VS2008中生成DLL项目
    C++变量未进行初始化时的默认值
    C++的四种初始化形式以及类型转换
  • 原文地址:https://www.cnblogs.com/WangBo020809/p/13939678.html
Copyright © 2011-2022 走看看