• 第八周编程总结


    7-1 混合类型数据格式化输入 (5 分)

    本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出

    1).实验代码

    #include<stdio.h>
    int main()
    {
      int x,y;
      float n,m;  
      scanf("%f %d %c %f",&n,&x,&y,&m);
      printf("%c %d %.2f %.2f
    ",y,x,n,m);
      return 0;  
    }  
    

    2). 设计思路

    第一步:定义变量
    第二步:输入变量
    第三步:输出答案

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

    问题:格式控制符使用错误错误
    解决方法:将整型变量的格式控制符改成字符变量的格式控制符

    4).运行结果截图

    7-2 计算符号函数的值 (10 分)

    对于任一整数n,符号函数sign(n)的定义如下:

    请编写程序计算该函数对任一输入整数的值。

    1)实验代码

    #include<stdio.h>
    int main()
    {
      int N;
      scanf("%d",&N);
      if(N<0){
        
        printf("sign(%d) = -1
    ",N);
      }
      else{
        if(N>0){      
          printf("sign(%d) = 1
    ",N);      
        }    
        else{
          printf("sign(%d) = 0
    ",N);      
        }
        return 0;    
      }  
    }
    

    2).设计思路

    第一步:定义变量
    第二步:输入实数
    第三步:调用if语句,判断三种情况
    第四步:输出每种情况的答案.

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

    问题:输出格式错误
    解决方法:输出时复制输出样例更改值

    4).运行结果截图

    7-3 计算个人所得税 (10 分)

    假设个人所得税为:税率×(工资−1600)。请编写程序计算应缴的所得税,其中税率定义为:

    当工资不超过1600时,税率为0;
    当工资在区间(1600, 2500]时,税率为5%;
    当工资在区间(2500, 3500]时,税率为10%;
    当工资在区间(3500, 4500]时,税率为15%;
    当工资超过4500时,税率为20%。

    1).实验代码

    #include<stdio.h>
    int main()
    {
      int wages;
      float rate,pit;  
      scanf("%d",&wages);
      if(wages<=1600)
          {      
            pit=0.00;     
          }     
          else{        
            if(wages<=2500){          
              rate=0.05;
              pit=rate*(wages-1600);          
            }        
            else        
            {        
              if(wages<=3500)        
              {
                rate=0.10;
                pit=rate*(wages-1600);            
              }
              else{        
                if(wages<=4500){              
                  rate=0.15;
                  pit=rate*(wages-1600);              
                }
                else{              
                  rate=0.20;
                  pit=rate*(wages-1600);                        
                }
              }
            }        
          }        
             printf("%.2f",pit);   
    		  return 0;
    }
    

    2).设计思路

    第一步:定义变量
    第二步:调用if语句,判断工资的阶段
    第三步:计算个人所得税
    第四步:输出答案

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

    问题:范围判断错误
    解决方法:添加等价的条件

    4).运行结果截图

    7-4 比较大小 (10 分)

    本题要求将输入的任意3个整数从小到大输出。

    1).实验代码

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

    2).设计思路

    第一步:自定义函数声明,定义变量
    第二步:输入变量
    第三步:调用if语句,判断三个数的大小
    第四步:输出答案

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

    问题:输出的大小排序错误
    解决方法:更改为正确的排序
    4).运行结果截图

    7-5 到底是不是太胖了 (10 分)

    据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | < 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。

    1).实验代码

    #include<stdio.h>
    #include<math.h>
    int main()
    {
      int N,high,weight,x,y,i;
      scanf("%d",&N);  
      for(i=1;i<=N;i++){    
      scanf("%d %d
    ",&high,&weight);      
      x=(high-100)*0.9*2;
      y=fabs(weight-x);  
      if(y<x*0.1){
        printf("You are wan mei!
    ");
      }
      else
      {
        if(y>=x*0.1&&weight<x){	    
        printf("You are tai shou le!
    ");
      }
      if(y>=x*0.1&&weight>x){    
        printf("You are tai pang le!
    ");
      }
    }
    }
      return 0;
    }
    
    

    2).设计思路

    第一步:自定义函数声明,定义变量
    第二步:输入变量
    第三步:调用for语句,进行循环输入身高和体重
    第四步:计算标准体重
    第五步:判断实际体重与标准体重的关系
    第六步:输出结果

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

    问题:少执行了一次循环
    解决方法:将for语句中的条件而补充完整

    4).运行结果截图

    7-6 高速公路超速处罚 (15 分)

    按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元罚款;若达到或超出50%,就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。

    2).实验代码

    #include<stdio.h>
    int main()
    {  
      double velocity,n,x;
      scanf("%lf %lf",&velocity,&n);  
     x =(velocity - n)*100 / n;  
          if(x>=50){     
         printf("Exceed %.0f%%. License Revoked
    ",x);       
         }
         else{    
        if(x>=10){    
    printf("Exceed %.0f%%. Ticket 200", x);
         }
         else{      
           printf("OK
    ");
         }
      }
      return 0;  
    }  
    

    2). 设计思路

    第一步:定义变量
    第二步:输入变量
    第三步:调用if语句判断是否超速
    第四步:输出答案

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

    问题:变量类型定义错误
    解决方法:将整型变量更换成浮点型变量

    4).运行结果截图

    7-7 统计字符 (15 分)

    本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

    2)实验代码

    #include<stdio.h>
    int main()
    {  
      int letter,blank,digit,other;
      char ch;
      int i;
       letter=blank=digit=other=0;
      for(i=1;i<=10;i++)
      {
        ch=getchar();
        if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
          letter++;    
        else if(ch==' '||ch=='
    ')
          blank++;    
        else if(ch>='0'&&ch<='9')
          digit++;
        else
          other++;      
      }
      printf("letter = %d, blank = %d, digit = %d, other = %d
    ",letter,blank,digit,other);
      return 0;
    }
    

    3).设计思路

    第一步:定义变量
    第二步:输入变量
    第三步:调用if语句,判断类型
    第四步:输出答案.

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

    问题:变量为初始化
    解决方法:将变量初始化

    4).运行结果截图

    7-8 统计学生平均成绩与及格人数 (15 分)

    本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。

    2).实验代码

    #include<stdio.h>
    int main()
    {  
      int i,N,performance,count=0,sum=0;  
      double average=0;  
      scanf("%d",&N);
    if(N==0){
    	printf("average = 0.0
    count = 0",average,count);	
    }
      else{  
      for(i=1;i<=N;i++)
      {
        scanf("%d",&performance);
        sum+=performance;
        if(performance>=60)
        count++;   
      }
      average=sum*1.0/N;
      printf("average = %.1f
    count = %d
    ",average,count);
      return 0;  
    }
    }
    

    2).设计思路

    第一步:定义变量
    第二步:调用if语句,判断学生人数是否为0
    第三步:调用for语句输入成绩
    第四步:计算平均数与及格的人数
    第五步:输出结果

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

    问题:未考虑到没有学生的情况
    解决方法:单独讨论没有学生的情况

    4).运行结果截图

    7-9 输出闰年 (15 分)

    输出21世纪中截止某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。

    1).实验代码

    #include<stdio.h>
    int main()
    {  
      int year,i;
      scanf("%d",&year);    
      if(year>2000&&year<2004)
              {
      	         printf("None
    ");
              }  
      if(year>2000&&year<=2100)
               {    
               	   for(i=2000;i<=year;i++)
               	       {           	       	
               	       	 if(i%4==0&&i%100!=0)
                             {                  
    				            printf("%d
    ",i);                
                             }           	       	
    				   }                      
               }
       else
               {
                	printf("Invalid year!
    ");
               } 
      return 0;
    }
    

    2).设计思路

    第一步:定义变量
    第二步:输入变量
    第三步:调用if语句,进行判断
    第四步:输出答案

    3).本题调试过程碰到的问题及解决方法、

    问题:未考虑到没有闰年的情况
    解决方法:对没有闰年的情况进行讨论

    4).运行结果截图

  • 相关阅读:
    小程序自定义日历组件
    uni-app 区分环境
    uniapp开发微信小程序获取用户手机号
    flex布局中子元素宽度失效的问题
    使用 VSCode 创建 SpringBoot RESTful 增删改查接口项目并发布
    [译] 如何使用 WebGL 技术进行风力地图可视化
    Cesium Primitive API 实践:绘制一个三角形
    ArcPy 输出路径神坑:不能有短横线
    【问题记录】本地没有更新远程仓库的jar包
    k8s 的pod按照时间排序
  • 原文地址:https://www.cnblogs.com/lmcmha/p/10160613.html
Copyright © 2020-2023  润新知