MST

星途 面试题库

面试题:C语言printf()和scanf()在复杂场景下的应用

编写一个C程序,使用printf()和scanf()实现一个简单的命令行计算器功能。用户可以输入两个操作数和一个运算符(+、-、*、/),程序计算结果并输出。要求考虑输入异常情况,如输入非数字字符、除数为零等,使用scanf()的返回值进行错误处理,并且在输出结果时,根据结果类型(整数或小数)合理使用printf()的格式控制符。
16.5万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试
#include <stdio.h>

int main() {
    double num1, num2;
    char operator;
    int result;

    printf("请输入第一个数字: ");
    result = scanf("%lf", &num1);
    if (result != 1) {
        printf("输入错误,请输入数字。\n");
        return 1;
    }

    printf("请输入运算符 (+, -, *, /): ");
    result = scanf(" %c", &operator);
    if (result != 1) {
        printf("输入错误,请输入运算符。\n");
        return 1;
    }

    printf("请输入第二个数字: ");
    result = scanf("%lf", &num2);
    if (result != 1) {
        printf("输入错误,请输入数字。\n");
        return 1;
    }

    switch (operator) {
        case '+':
            printf("结果是: %.2lf\n", num1 + num2);
            break;
        case '-':
            printf("结果是: %.2lf\n", num1 - num2);
            break;
        case '*':
            printf("结果是: %.2lf\n", num1 * num2);
            break;
        case '/':
            if (num2 == 0) {
                printf("除数不能为零。\n");
            } else {
                printf("结果是: %.2lf\n", num1 / num2);
            }
            break;
        default:
            printf("无效的运算符。\n");
    }

    return 0;
}