C语言第四周作业(选择语句,if-else,switch-case,错误处理)

题目1

a.
#include <stdio.h>
int main()
{
    int numYrs;
    printf("please input a number:");
    scanf("%d",&numYrs);

    if (numYrs >5) printf("利率是 = 7.5%%");
    else if (numYrs >0) printf("利率是 = 5.4%%");
    else printf("error!");

    return 0;
}

在这里插入图片描述

至少需要输入三次数据,大于5的数据,大于0小于5的数据,还有小于0的数据,因为年数不可能小于0,所以此时应有错误提示。

题目2

5.
#include <stdio.h>
int main()
{
    int a,b;
    printf("please input two numbers:");
    scanf("%d %d",&a,&b);
    if (a>b) printf("The first number is greater than the second");
    else if (a<b) printf("The first number is not greater than the second");
    else printf("The first number is equal to the second");
    
    return 0;
}

在这里插入图片描述

因为对两个数作比较,所以需要考虑它们相等的情况,否则并没有完全对这两个数的大小情况讨论全面。

7.a
#include <stdio.h>
int main()
{
    char letter;
    scanf("%c",&letter);
    if (letter >='a' && letter <='z') {
        printf("The character just entered is a lowercase letter");
    }
    else {
        printf("The character just entered is not a lowercase letter");
    }

    return 0;
}

在这里插入图片描述

7.b
#include <stdio.h>
int main()
{
    char letter;
    scanf("%c",&letter);
    if (letter >='A' && letter <='Z') {
        printf("The character just entered is a uppercase letter");
    }
    else {
        printf("The character just entered is not a uppercase letter");
    }

    return 0;
}

在这里插入图片描述

8.a
#include <stdio.h>
int main()
{
    char letter;
    scanf("%c",&letter);
    if (letter >='a' && letter <='z') {
    printf("%d",letter-'a'+1);
    } else {
        printf("the letter is not a lowercase letter");
    }

    return 0;
}

在这里插入图片描述

8.b
#include <stdio.h>
int main()
{
    char letter;
    scanf("%c",&letter);
    if (letter >='A' && letter <='Z') {
    printf("%d",letter-'A'+1);
    } else {
        printf("the letter is not a uppercase letter");
    }

    return 0;
}

在这里插入图片描述

题目3

  • 用 if-else 语句来实现
#include <stdio.h>
int main()
{
    int grade;
    scanf("%d",&grade);
    if (grade>=90) printf("A");
    else if (grade>=80) printf("B");
    else if (grade>=70) printf("C");
    else if (grade>=60) printf("D");
    else printf("E");
    
    return 0;
}

在这里插入图片描述

  • 用 switch-case 语句来实现
#include <stdio.h>
int main()
{
    int score,grade;
    scanf("%d",&score);

    grade = score/10;
    switch (grade){
        case 10: case 9:printf("A"); break;
        case 8: printf("B"); break;
        case 7: printf("C"); break;
        case 6: printf("D"); break;
        default: printf("F");
    }
}

在这里插入图片描述

题目4

#include <stdio.h>
#define bi 5.0/9.0
int main()
{
    double tem;
    char letter;
    double cel,fah;
    scanf("%lf %c",&tem,&letter);

    if (letter =='f'){
        cel = bi * (tem-32.0);
        printf("the celsius temperature is %.1f degrees",cel);
    } else if (letter == 'c'){
        fah = 1.6 * tem +32.0;
        printf("the fanrenheit temperature is %.1f degrees",fah);
    } else {
        printf("input error!");
    }
    return 0;

}

在这里插入图片描述

题目5

#include <stdio.h>
#include <math.h>

int main()
{
    double a,b,c;
    double x1,x2;
    scanf("%lf %lf %lf",&a,&b,&c);

    if (a==0){
        printf("enter error!");
    } else{
        double delta = b*b-4*a*c;
        if (delta >=0){
            x1 = (-b-sqrt(delta))/(2*a);
            x2 = (-b+sqrt(delta))/(2*a);
            printf("the x1 = %.1f,the x2 = %.1f.",x1,x2);
        } else{
            printf("This equation has no real roots");
        }
    }
    return 0;
}

在这里插入图片描述

题目6

1
#include <stdio.h>
int main()
{
    int number;
    printf("Enter a number:");
    scanf("%d",&number);

    if (number<10){
        printf("The number %d has 1 digits",number);
    } else if (number<100){
        printf("The number %d has 2 digits",number);
    } else if (number<1000){
        printf("The number %d has 3 digits",number);
    } else if (number<10000){
        printf("The number %d has 4 digits",number);
    } else {
        printf("Enter error!");
    }
    return 0;
}

在这里插入图片描述

最后加了一个else语句来进行错误处理

2
#include <stdio.h>
int main()
{
    int hour,minute;
    printf("Enter a 24-hour time:");
    scanf("%d:%d",&hour,&minute);

    if (hour>=0 &&hour<=12){
        printf("Equivalent 12-hour time:%d:%d AM",hour,minute);
    } else if (hour>12 && hour<24){
        printf("Equivalent 12-hour time:%d:%d PM",hour-12,minute);
    } else {
        printf("Enter error!");
    }
    return 0;
}

也使用了一个else来进行错误处理。

在这里插入图片描述

4
#include <stdio.h>
int main()
{
    double speed;
    scanf("%lf",&speed);

    if (speed>0 && speed<1){
        printf("Calm");
    } else if (speed<4){
        printf("Light air");
    } else if (speed<28){
        printf("Breeze");
    } else if (speed<48){
        printf("Gale");
    } else if (speed<64){
        printf("Storm");
    } else{
        printf("Hurricane");
    }
}

在这里插入图片描述

5
#include <stdio.h>
int main()
{
    double income,tax;
    scanf("%lf",&income);

    if (income>=0 && income<=750){
        tax = 0.01*income;
    } else if (750<income<=2250){
        tax = 7.50+0.02*(income-750);
    } else if (2250<income<=3750){
        tax = 37.50+0.03*(income-2250);
    } else if (3750<income<=5250){
        tax = 82.50+0.04*(income-3750);
    } else if (5250<income<=7000){
        tax = 142.50+0.05*(income-5250);
    } else{
        tax = 230.00+0.06*(income-7000);
    }
    printf("the tax is %.1f dollars",tax);

    return 0;
}

在这里插入图片描述

7
#include <stdio.h>
int main()
{
    int a,b,c,d;
    int max0,max1,max2,min0,min1,min2;
    scanf("%d %d %d %d",&a,&b,&c,&d);

    if (a>b){
        max1 = a;  min1 = b;
    } else{
        max1 = b;  min1 = a;
    }
    if (c>d){
        max2 = c;  min2 = d;
    } else{
        max2 = d;  min2 = c;
    }
    if (max1>max2){
        max0 = max1; 
    } else{
        max0 = max2;
    }
    if (min1<min2){
        min0 = min1;
    } else{
        min0 = min2;
    }
    printf("Largest:%d\n",max0);
    printf("Smallest:%d\n",min0);

    return 0;
}

在这里插入图片描述

题目7

9
#include <stdio.h>
int main()
{
    int date1,date2,month1,month2,year1,year2;
    printf("Enter first date:");
    scanf("%d/%d/%d",&date1,&month1,&year1);
    printf("Enter second date:");
    scanf("%d/%d/%d",&date2,&month2,&year2);

    if (year1>year2){
        printf("%d/%d/%d is earlier than %d/%d/%d",date2,month2,year2,date1,month1,year1);     
    } else if(year2>year1){
        printf("%d/%d/%d is earlier than %d/%d/%d",date1,month1,year1,date2,month2,year2);
    } else{
        if (month1>month2){
            printf("%d/%d/%d is earlier than %d/%d/%d",date2,month2,year2,date1,month1,year1);
        } else if(month2>month1){
            printf("%d/%d/%d is earlier than %d/%d/%d",date1,month1,year1,date2,month2,year2);
        }else {
            if (date1>date2){
                printf("%d/%d/%d is earlier than %d/%d/%d",date1,month1,year1,date2,month2,year2);
            }else if(date2>date1){
        } else{
            printf("%d/%d/%d is equal to %d/%d/%d",date1,month1,year1,date2,month2,year2);
            }
        }
    }
    return 0;

}

在这里插入图片描述

11
#include <stdio.h>
int main()
{
    int number,gewei,shiwei;
    char *cpoint="",*cnum="";

    printf("Enter a two-digit number:");
    scanf("%d",&number);
    shiwei = number/10;
    gewei = number%10;
    if (shiwei>1){
    switch (shiwei) {
        case 2:   cpoint="twenty"; break;
        case 3:   cpoint="thirty"; break;
        case 4:   cpoint="forty";  break;
        case 5:   cpoint="fifty";  break;
        case 6:   cpoint="sixty";  break;
        case 7:   cpoint="seventy";break;
        case 8:   cpoint="eighty"; break;
        case 9:   cpoint="ninety"; break;
    }
    switch (gewei){
        case 0:   break;
        case 1:   cnum="one"; break;
        case 2:   cnum="two"; break;
        case 3:   cnum="three"; break;
        case 4:   cnum="four";  break;
        case 5:   cnum="five";  break;
        case 6:   cnum="six";  break;
        case 7:   cnum="seven";break;
        case 8:   cnum="eight"; break;
        case 9:   cnum="nine"; break;
    }
    if (gewei==0){
        printf("You entered the number %s",cpoint);
    } else {
        printf("You entered the number %s-%s",cpoint,cnum);
    }
    } else{
        switch(gewei){
            case 1:  cnum="eleven"; break;
            case 2:  cnum="twelve"; break;
            case 3:  cnum="thirteen"; break;
            case 4:  cnum="fourteen"; break;
            case 5:  cnum="fifteen"; break;
            case 6:  cnum="sixteen"; break;
            case 7:  cnum="seventeen"; break;
            case 8:  cnum="eighteen"; break;
            case 9:  cnum="nineteen"; break;
        }
        printf("You enter the number is %s",cnum);
    }
    
    return 0;
}

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
switch语句和if-else语句C语言中的两种分支语句,它们有以下区别[^1]: 1. 语法结构不同:switch语句使用switch关键字,后面跟着一个整型表达式,然后是一系列的case语句;而if-else语句使用if关键字,后面跟着一个表达式,然后是一系列的语句块。 2. 判断条件不同:switch语句的判断条件是整型表达式,而if-else语句的判断条件可以是任意的表达式。 3. 执行方式不同:switch语句根据整型表达式的值来选择执行哪个case语句,一旦找到匹配的case语句,就会执行该语句以及其后的所有语句,直到遇到break语句或者switch语句结束;而if-else语句是按照顺序判断条件,只会执行第一个满足条件的语句块,然后跳出整个if-else语句。 4. 适用场景不同:switch语句适用于多个固定值的判断,例如根据不同的整型值执行不同的操作;而if-else语句适用于根据不同的条件执行不同的操作,条件可以是任意的表达式。 下面是一个使用switch语句和if-else语句的示例: 使用switch语句判断星期几: ```c int day = 3; switch(day) { case 1: printf("Monday\n"); break; case 2: printf("Tuesday\n"); break; case 3: printf("Wednesday\n"); break; default: printf("Invalid day\n"); } ``` 使用if-else语句判断成绩等级: ```c int score = 85; if(score >= 90) { printf("A\n"); } else if(score >= 80) { printf("B\n"); } else if(score >= 70) { printf("C\n"); } else { printf("D\n"); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cachel wood

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值