首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将4位整数分成2位整数,按c计算

将4位整数分成2位整数,按c计算
EN

Stack Overflow用户
提问于 2019-03-14 16:24:48
回答 1查看 336关注 0票数 0

//通过键盘输入一个4位整数n,编写程序将其分成两个2位整数a和B,计算并输出拆分后的两个数的加、减、乘、除、余运算结果例如,n=-4321,如果拆分后的两个整数分别为a和b,则a=-43,b=-21。除法运算的结果要求精确到小数点后2位,数据类型为float。冗余和除法运算需要考虑0的除法,即如果拆分B= 0,则输出提示信息“第二个运算符为零!”

//测试不合格,该如何修复

代码语言:javascript
复制
#include<stdio.h>
#include<math.h>

int main()
{
    int x, a, b;
    printf("Please input n:\n");
    scanf("%d", &x);
    a = x / 100;
    b = x % 100;
    printf("%d,%d\n", a, b);
    printf("sum=%d,sub=%d,multi=%d\n", a + b, a - b, a*b);
    if (b == 0)
        printf("The second operater is zero!");
    else
        printf("dev=%.2f,mod=%d\n", (float)a / b, a%b);
}
EN

回答 1

Stack Overflow用户

发布于 2019-03-14 16:44:11

您忘记检查x是否为4位数字。因此,如果输入是12345123,就不能满足要求。

代码语言:javascript
复制
#include <stdio.h>

int main()
{

    int x, a, b;
    int passed = 0;

    // Enter a 4 digits number: ABCD
    do {
        printf("Enter X = ");
        scanf("%d", &x);
        passed = (x >= 1000 && x <= 9999) || (x >= -9999 && x <= -1000);
    } while (!passed);

    a = x / 100;
    b = x % 100;

    printf("Numbers: %d %d \n", a, b);

    printf("Sum = %d \n", a + b);
    printf("Sub = %d \n", a - b);
    printf("Mul = %d \n", a * b);
    if (0 == b) {
        printf("Div by Zero \n");    
    } else {
        printf("Div = %f \n", (double)a / b);
        printf("Mod = %d \n", a % b);
    }

    return 0;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55157873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档