这个挺简单的, 没啥好讲, 直接展示代码

#include <stdio.h>

int main() {
	int a, b;

	printf("请输入第一个整数: ");
	scanf("%d", &a);

	printf("请输入第二个整数: ");
	scanf("%d", &b);

	// 计算商和余数

	printf("商为: %d\n", a / b);
	printf("余数为: %d\n", a % b);

	return 0;
}

虽然简单, 但我依然要挑刺, 我们不难发现, 程序中有一个很致命的bug, 那就是我们在给b赋值的时候, 可以给它赋值一个0, 但众所周知, 0不能作为被除数, 不然就会报错, 那么该怎么解决这个问题的, 我的解决方式是这样的

#include <stdio.h>

int main() {
    int dividend, divisor;
    int quotient, remainder;

    printf("请输入被除数: ");
    scanf("%d", &dividend);

    do {
        printf("请输入除数 (不能为零): ");
        scanf("%d", &divisor);
        
        if (divisor == 0) {
            printf("除数不能为零,请重新输入。\n");
        }
    } while (divisor == 0);

    // 计算商和余数
    quotient = dividend / divisor;
    remainder = dividend % divisor;

    printf("商为: %d\n", quotient);
    printf("余数为: %d\n", remainder);

    return 0;
}

我的解决方式是这样的, 首先先将除数和被除数分开, 之后使用了do-while循环,以确保在用户输入除数为0时要求重新输入。如果用户输入的除数为0,则打印出错误消息并再次提示输入除数。

这样,程序将继续循环,直到用户输入一个非零的除数。然后,计算两个整数的商和余数,并输出结果。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐