第八周编程总结

混合类型数据格式化输入

(1)实验代码
#include<stdio.h>
int main (void)
{
 int b;
 double a, d;
 char c;
 scanf("%lf %d %c %lf", &a, &b, &c, &d);
 printf("%c %d %.2f %.2f", c, b, a, d);
 }
(2)设计思路
第一步:定义变量和字符
第二步:输入浮点型,字符,整数
第三步:调整位置
第四步:输出
(3)本题调试过程碰到问题及解决办法
问题不大,就是要注意顺序

(4)运行结果截图

计算符号函数的值

(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)设计思路
第一步:定义变量
第二步:输入变量n
第三步:用三个if语句判断
第四步:输出
(3)本题调试过程碰到问题及解决办法
没什么问题。
(4)运行结果截图

计算个人所得税

(1)实验代码
#include<stdio.h>
int main ()
{
 int money;
 double sum;
 scanf("%d",&money);
 sum = money - 1600;
 if (money==0)
 printf("0.00");
 else if(money<1600&&money>0)
 printf("0.00");
 else if (money>1600&&money<=2500)
 printf("%.2f",sum*0.05);
 else if (money>2500&&money<=3500)
 printf("%.2f",sum*0.1);
 else if (money>3500&&money<=4500)
 printf("%.2f",sum*0.15);
 else
 printf("%.2f",sum*0.2);
 return 0;
}
(2)设计思路
第一步:定义变量
第二步:输入变量
第三步:计算后判断
第四步:输出结果
(3)本题调试过程碰到问题及解决办法
注意的是当money为0的时候输出的结果需要注意
(4)运行结果截图

比较大小

(1)实验代码
#include<stdio.h>
int main(void)
{
 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)运行结果截图

到底是不是太胖了

(1)实验代码
#include<stdio.h>
#include<math.h>
int main()
{
    int n;
    double h1,w1,w2,x;
    scanf("%d",&n);
    while(n--){
        scanf("%lf%lf",&h1,&w1);
        w2 = (h1 - 100)*0.9 * 2;
        x = fabs(w2 - w1);
        if(w1 >= w2){
            if(x < w2*0.1)
                printf("You are wan mei! ");
            else
                printf("You are tai pang le! ");
        }
        else{
            if(x < w2*0.1)
                printf("You are wan mei! ");
            else
                printf("You are tai shou le! ");
        }
    }
    return 0;
}
(2)设计思路
第一步:定义变量身高和体重
第二步:输入身高体重
第三步:计算并判断
第四步:输出结果
(3)本题调试过程碰到问题及解决办法
没问题,一次通过
(4)运行结果截图

高速公路超速处罚

(1)实验代码
#include<stdio.h>
int main ()
{
 double a,b,x;
 scanf("%lf %lf",&a,&b);
 x = (a-b) / b;
 if(x<0.1)
 printf("OK");
 if(x>=0.1&&x<0.5)
 printf("Exceed %.0f%%. Ticket 200",100*x);
 if(x>=0.5)
 printf("Exceed %.0f%%. License Revoked",100*x);
 return 0;
}
(2)设计思路
第一步:定义变量
第二步:输入并计算
第三步:用if语句判断
第四步:输出结果
(3)本题调试过程碰到问题及解决办法
错在输出的格式忘记打空格,导致错误
(4)运行结果截图

统计字符

(1)实验代码
#include<stdio.h>
int main ()
{
 int i, letter, blank, digit, other;
 char a;
 letter = blank = digit = other = 0;
 for(i=1;i<=10;i++)
 {
  a = getchar();
  if(a>='a'&&a<='z'||a>='A'&&a<='Z')
  letter++;
  else if(a==' '||a==' ')
  blank++;
  else if(a>='0'&&a<='9')
  digit++;
  else
  other++;
 }
 printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);
 return 0;
 }
(2)设计思路
第一步:定义变量,赋初值为0
第二步:运用for循环
第三步:每输入用if判断再自增1
第四步:输出结果
(3)本题调试过程碰到问题及解决办法
之前在书上看到过这一题,做起来没什么问题
(4)运行结果截图

统计学生平均成绩与及格人数

(1)实验代码
#include<stdio.h>
int main (void)
{
  int count,i,n;
  double grade,total;
 
  scanf("%d",&n);
  count=0;
  total=0;
  if(n==0){
    printf("average = 0.0 ");
    printf("count = 0");
  }
  if(n!=0) {
  for(i=1;i<=n;i++) {
    scanf("%lf",&grade);
    total=total+grade;
    if(grade>=60){
      count++;
    }
  }
  printf ("average = %.1f ",total/n);
  printf("count = %d",count);
}
  return 0;
}
(2)设计思路
第一步:定义变量赋初值
第二步:输入n,如果n为0的时候输出
第三步:不为0用for循环
第四步:输出结果
(3)本题调试过程碰到问题及解决办法
n为0的时候没有注意到,之后加了一个if-else语句
(4)运行结果截图

输出闰年

(1)实验代码
#include<stdio.h>
int main(void)
{
 int year, i;
 scanf("%d", &year);
 if(year < 2001 || year > 2100)
  printf("Invalid year! ");
 else {
  for(i = 2001; i <= year; ++i) {
  if((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0))
  printf("%d ", i);
  }
  if(year<2004)
  printf("None");
 }
 return 0;
}
(2)设计思路
第一步:定义变量
第二步:输入年并判断是不是21世纪的,不是输出
第三步:是的用for循环,并用if语句找出闰年
第四步:输出结果
(3)本题调试过程碰到问题及解决办法
之前把21世纪看成20世纪了,错了一次
还有就是年份小于2004年时的结果,忽略了
(4)运行结果截图
原文地址:https://www.cnblogs.com/xirfly/p/10124147.html