c语言课下作业(第四次「选择结构」)

这个程序实现了一个任务选择系统,用户可以输入1-5来选择执行不同的任务,包括找出三个数中的最大值和最小值、计算特定年份和月份的天数、执行算术表达式、统计字符输入的字母类型以及计算数字的各位之和。程序具有错误检查和用户交互功能,可反复执行任务。
摘要由CSDN通过智能技术生成
#include<stdio.h>

void homeworkOne();
void homeworkTwo();
void homeworkThree();
void homeworkFour();
void homeworkFive();

int main(void){
    int no, retry;
    do
    {
        printf("请选择你要执行的任务[输入1-5 按回车结束]:");
        scanf("%d", &no);
        switch (no)
        {
        case 1:
            homeworkOne();
            break;
        case 2:
            homeworkTwo();
            break;
        case 3:
            homeworkThree();
            break;
        case 4:
            homeworkFour();
            break;
        case 5:
            homeworkFive();
            break;
        default:
            printf("请输入1-5选择任务");
            break;
        }
        //选择是否再次运行
        printf("是否继续选择任务执行[yes --> 0], [no --> 9]");
        scanf("%d", &retry);
    } while (retry == 0);
}

void homeworkOne(){
    int min, max, n, a, b;
    do{
        printf("请输入三个正整数:");scanf("%d,%d,%d", &n, &a, &b);
    }while(n < 0 && b < 0 && a < 0);

    max = n;
    a > max ? max = a : b > max ? max = b : printf("找不出最大值");
    a < min ? min = a : b < min ? min = b : printf("找不出最小值");

    printf("从大到小依次输出%d, %d", max, min);
}

void homeworkTwo(){
    int year, mon;
   
    do{  
        printf("请输入年份和月份推测天数【格式年份-月份】");scanf("%d-%d", &year, &mon);
        if(year % 400 == 0)printf("该年有366天"); else printf("该年有365天");
        switch (mon){
            case 1:case 3:case 5:case 7: case 8: case 10: case 12:printf("该年月有31天");
            break;
        case 2:if(year % 400 == 0) printf("该月28天");else printf("该月有29天");
            break;
        default:printf("该月份有30天");
            break;
        }
    }while(year > 999 && mon <= 12 && mon >= 1);
    
}

void homeworkThree(){
    char c;
    float m, n;
    printf("请输入一个算术表达式 例如【4.5+9】:");
    scanf("%f%c%f", &m, &c, &n);
    switch ((int)c)
    {
        case '*':
            printf("运算结果为%f", m*n);
            break;
        case '/':if(n != 0)printf("运算结果为%f", m/n);else printf("被除数不能为0");
            break;
        case '%':
            if((int)m == m || (int)n == n)printf("运算结果为%d", (int)m % (int)n);
            else printf("小数不能使用%%取余");
            break;
        case '+':
            printf("运算结果为%f", m+n);
            break;
        case '-':
            printf("运算结果为%f", m-n);
            break;
        default:printf("请输入正确的运算符(* / + - %%)");
            break;
        }
}

void homeworkFour(){
    int c,a,b,d;
    a = b = c = 0;
    while((c = getchar()) != '\n'){
        if(c >= 'a' && c <= 'z')a++;
        else if(c >= 'A' && c <= 'Z')b++;
        else if(c >= '0' && c <='9') d++;
    }
    printf("大写字母%d个, 小写字母%d个, 数字%d个", a, b, d);
}

void homeworkFive(){
    int no, ns, sum;
    
    ns = 0;
    sum = 0;
    do{
        printf("请输入一个正整数:");scanf("%d", &no);
        if(no <= 0){
            puts("\a请不要输入非正整数");
        }
    }while(no <= 0);

    printf("%d的每位的和:", no);
    while(no > 0){
        ns = no % 10;
        no /= 10;
        printf("%d\n", sum += ns);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值