月落58
2021-09-22 16:37
采纳率: 91.7%
浏览 276

编写一个程序,输入两个正整数,求它们的和,差,积,商,余数

编写一个程序,输入两个正整数,求它们的和,差,积,商,余数。

  • 好问题 提建议
  • 收藏

2条回答 默认 最新

  • 快乐鹦鹉 2021-09-22 16:40
    已采纳
    int main()
    {
        int m,n;
        scanf("%d%d",&m,&n);
        printf("m+n=%d\n",m+n);
        printf("m-n=%d\n",m-n);
        printf("m*n=%d\n",m*n);
        if(n!=0)
        {
            printf("m/n=%d\n",m/n);
            printf("m%%n=%d\n",m%n);
        }
        else
          printf("无效n,不能进行除法和求余计算\n");
        return 0;
    }
    
    
    已采纳该答案
    评论
    解决 2 无用
    打赏 举报
  • 十有九点 2021-09-22 17:14
    int Add(int a, int b)
    {
        if (a <= 0 && b <= 0 && abs(a) - 1 <= INT_MAX - abs(b))
        {
            return a + b;
        }
        else if ((a< 0 && b > 0) || (b < 0 && a>0))
        {
            return a + b;
        }
        else if (a >= 0 && b >= 0 && a <= INT_MAX - b)
        {
            return a + b;
        }
        else
        {
            printf("over range/n");
            return false;
        }
    }
    
    int Div(int a, int b)
    {
        if (0 == b)
        {
            printf("over range/n");
            return false;
        }
        else if ((a >= 0 && b > 0) || (a >= 0 && b < 0) || (a <= 0 && b > 0))
        {
            return a / b;
        }
        else if (a <= 0 && b < 0 && a - 1 / b != INT_MAX / b)
        {
            return a / b;
        }
        else
        {
            printf("over range/n");
            return false;
        }
    }
    int Mul(int a, int b)
    {
        if (0 == a || 0 == b)
        {
            return 0;
        }
        else if (a > 0 && b > 0 && a <= INT_MAX / b)
        {
            return a * b;
        }
        else if (a < 0 && b < 0 && a >= INT_MAX / b)
        {
            return a * b;
        }
        else if (a > 0 && b < 0 && b >= INT_MIN / a && b <= INT_MAX /a)
        {
            return a * b;
        }
        else if (a < 0 && b > 0 && a >= INT_MIN / b)
        {
            return a * b;
        }
        else
        {
            printf("over range/n");
            return false;
        }
    }
    int Sub(int a, int b)
    {
        if (a >= 0 && b >= 0)
        {
            return a - b;
        }
        else if (a<0 && b<0)
        {
            return a - b;
        }
        else if (a >= 0 && b <= 0 && a <= INT_MAX + b)
        {
            return a - b;
        }
        else if (a <= 0 && b >= 0 && a + INT_MAX >= b - 1)
        {
            return a - b;
        }
        else
        {
            printf("over range/n");
            return false;
        }
    }
    int main
    {
        int m,n;
        scanf("%d%d",&m,&n);
        printf("m+n=%d\n",Add(m,n));
        printf("m-n=%d\n",Sub(m,n));
        printf("m*n=%d\n",Mul(m,n));
         
    if(0 != n)
    {
          printf("m/n=%d\n",Div(m,n));
         printf("m%%n=%d\n",m%n);
    }
    else
    {
      printf("over range/n");
    }
        return 0;
    }
    
    评论
    解决 1 无用
    打赏 举报

相关推荐 更多相似问题