第八周编程总结

第八周编程总结

题目1:8-1 混合类型数据格式化输入 (5 分)

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

1).实验代码

#include<stdio.h>

int main()

{

  int n;

  float number1,number2;

  char op;

  scanf("%f %d %c %f",&number1,&n,&op,&number2);

  printf("%c %d %.2f %.2f",op,n,number1,number2);

  return 0;

}

2).设计思路

第一步 输入并定义变量

第二步 输出并定义变量

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

没有遇到问题

4).运行结果截图

题目2:8-2 计算符号函数的值 (10 分)

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

说明: https://images.ptausercontent.com/3

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

 

1).实验代码

#include<stdio.h>

int main()

{

  int n,result;

  scanf("%d",&n);

  if(n == 0){

    result = 0;

  }

  else if(n<0){

    result = -1;

  }

  else{

    result = 1;

  }

  printf("sign(%d) = %d",n,result);

  return 0;

}

2).设计思路

第一步 整形输入变量n

第二步 使用if-else语句进行判断

第三步 输出结果

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

If语句中的等号出现错误,==为等号,=为赋值语句

4).运行结果截图

题目3:8-3 计算个人所得税 (10 分)

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

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

1).实验代码

#include<stdio.h>

int main()

{

  double wage,rate;

  scanf("%lf",&wage);

  if(wage>=0){

    if(wage<=1600){

      rate = 0.00;

    }

    else if(wage>1600&&wage<=2500){

      rate = 0.05*(wage-1600);

    }

    else if(wage>2500&&wage<=3500){

      rate = 0.10*(wage-1600);

    }

    else if(wage>3500&&wage<=4500){

      rate = 0.15*(wage-1600);

    }

    else if(wage>4500){

      rate = 0.20*(wage-1600);

    }

  }

  printf("%.2lf",rate);

  return 0;

}

2).设计思路

第一步 使用双精度浮点型进行定义

第二步使用if-else语句进行对不同工资的判断

第三步进行个人税的输出

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

无问题

4).运行结果截图

题目4:8-4 比较大小 (10 分)

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

 

1).实验代码

#include<stdio.h>

int main()

{

  int a,b,c;

  scanf("%d %d %d",&a,&b,&c);

  int e = 0;

  if(a>b){

    e = a;

    a = b;

    b = e;

  }

  if(a>c){

    e = a;

    a = c;

    c = e;

  }

  if(b>c){

    e = b;

    b = c;

    c = e;

  }

  printf("%d->%d->%d",a,b,c);

  return 0;

}

2).设计思路

第一步 使用4个盒子,其中一个空盒子用来储存2者之间较大的

第二步使用if-else语句进行大小的比较,

第三步按顺序输出

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

4).运行结果截图

题目5:8-5 到底是不是太胖了 (10 分)

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

1).实验代码

#include<stdio.h>

int main()

{

    int n;

    double s,x,a,b;

    scanf("%d",&n);

    while(n--)

    {

        scanf("%lf%lf",&a,&b);

        s=(a-100.0)*0.9;

        x=b/2.0;

        if(x>(s-s*0.1)&&x<(s+s*0.1))

            printf("You are wan mei!\n");

        if(x>=(s+s*0.1))

            printf("You are tai pang le!\n");

        if(x<=(s-s*0.1))

            printf("You are tai shou le!\n");

    }

}

2).设计思路

第一步 进行输入并定义变量

第二步有3种情况使用if-else语句进行不同的输出。

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

If条件语句使用数学函数进行判断,导致部分正确

4).运行结果截图

题目6:8-6 高速公路超速处罚 (15 分)

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

1).实验代码

#include <stdio.h>

int main()

{

    int speed,limit;

    double a;

    scanf("%d %d",&speed,&limit);

    a=(double)(speed-limit)*100/(double)limit;

    if(a<10||speed<limit)

        printf("OK");

    else if(a<50)

        printf("Exceed %.0f%%. Ticket 200",a);

    else

        printf("Exceed %.0f%%. License Revoked",a);

    return 0;

}

2).设计思路

第一步 输入并定义速度和限制速度

第二步求出罚款200元的条件

第三步使用if-else语句进行判断是否需要罚款

第四步 格式化输出

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

满足一个速度小于10%是仅仅不够的,速度必须小于限制速度才是没有超速

4).运行结果截图

题目7:8-7 统计字符 (15 分)

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

1).实验代码

#include<stdio.h>

int main()

{

    int letter=0,digit=0,blank=0,other=0;

    int i;

    char ch;

 

    for(i=0;i<=9;i++){

        scanf("%c",&ch);

        if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))

               letter++;

        else if(ch>='0'&&ch<='9')

               digit++;

        else if(ch==' '||ch=='\n')

               blank++;

        else

               other++;

    }

      scanf("%c",&ch);

     printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);

     return 0;

}

2).设计思路

第一步 进行格式化输入并定义储存变量的字符

第二步判断是否为字符,数字等,如果是并进行累加

第三步格式化输出

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

空格和回车的判断不熟悉,查阅书籍可知

4).运行结果截图

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

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

1).实验代码

#include<stdio.h>

#include<math.h>

int main(void)

{

       int n,grade;

    int count;

    double sum,ave;

    scanf("%d",&n);

    count=0;

    sum=0.0;

    for(int i=0;i<n;i++){

        scanf("%d",&grade);

        sum+=grade;

        if(grade>=60) count+=1;

    }

    ave = n!=0? sum/n : 0;

    printf("average = %.1lf\n",ave);

    printf("count = %d",count);

       return 0;

}

2).设计思路

第一步 调用数学函数使用头文件

第二步 输入并定义变量

第三步使用if-else语句进行判断是否及格,是,则进行累加

第四步 求出平均数,并进行格式化输出

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

需注意当n=0时不能进行平均值的运算

4).运行结果截图

题目:8-9 输出闰年 (15 分)

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

代码:

#include<stdio.h>

int main()

{

       int year, i, count=0;

       scanf("%d", &year);

       if(year<=2000||year>2100)

              printf("Invalid year!\n");

              else{

              for(i=2001; i<=year; i++){

                     if(i%4 == 0&&i%100!=0||i%400 == 0){

                            printf("%d\n", i);

                            count++;

                     }

              }

              if(count == 0)

                     printf("None\n");

                     }     

       return 0;

}

2).设计思路

第一步 格式化输入年份

第二步 判断是否满足闰年的条件,使用if-elae语句

第三步 格式化输出变量

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

If条件句的逻辑关系不明确,逻辑或和逻辑与的符号混淆

查询书籍

4).运行结果截图

 

猜你喜欢

转载自www.cnblogs.com/chenguohhw/p/9951912.html