黑马程序员技术交流社区

标题: 计算两数的和差积商余 [打印本页]

作者: Zeus-S    时间: 2015-2-10 18:14
标题: 计算两数的和差积商余
我知道这题很简单,但还是怕自己在小细节上出错,望高手们看看,有错误希望指正一下。

  1. //输入两个数,打印(printf)这两个数的和、差、积、商、以及余数

  2. #include <stdio.h>

  3. int main(){
  4.        
  5.         int a,b;
  6.        
  7.         printf("请输入两个数");
  8.        
  9.         scanf("%d %d",&a,&b);
  10.        
  11.         int sum=a+b;
  12.        
  13.         int difference=a-b;;
  14.        
  15.         if(a<b){
  16.                 difference=b-a;
  17.         }
  18.        
  19.         int product=a*b;
  20.        
  21.         int quotient=a/b;
  22.        
  23.         int remainder=a%b;
  24.        
  25.         printf("两数的和为%d\n",sum);
  26.         printf("两数的差为%d\n",difference);
  27.         printf("两数的积为%d\n",product);
  28.         printf("两数的商为%d\n",quotient);
  29.         printf("两数的余数为%d\n",remainder);
  30.        
  31.         return 0;                
  32. }
复制代码

作者: Zeus-S    时间: 2015-2-10 18:17
还有有一点,如果a<b那么,余数是不是就是0了?
以及如果a/b是小数的话结果会怎么输出呢?比如10除以3,那结果会输出什么?
作者: 钟楼上的猫    时间: 2015-2-10 19:00
Zeus-S 发表于 2015-2-10 18:17
还有有一点,如果a

10/3得3   只取整数部分,还有局部变量最好初始化一下
作者: 临汾皮皮    时间: 2015-2-10 19:01
本帖最后由 临汾皮皮 于 2015-2-10 19:02 编辑

我已经提交了,这是我基础测试题的答案,你们可以参考下~~,希望有所帮助

/*
输入两个数,打印(printf)这两个数的和、差、积、商、以及余数。
*/
#include <stdio.h>

int main()
{
   //定义变量,a,b,he,chu,cheng,chu,yu
    int a = 10

    int b = 2   

    int he,cha,cheng,chu,yu;  

    he = sumAndMinus(a, b, &cha, &cheng, &chu, &yu);

    printf("和是%d\n差是%d\n乘数是%d\n商是%d\n余数是%d\n", he, cha, cheng, chu, yu);

    return 0;

}

int sumAndMinus(int n1, int n2, int *n3, int *n4, int *n5, int *n6)
{
   //减法,乘法,除法,取余,和
    *n3 = n1 - n2;
    *n4 = n1 * n2;
    *n5 = n1 / n2;
    *n6 = n1 % n2;
    return n1 + n2;
}


作者: 钟楼上的猫    时间: 2015-2-10 19:02
Zeus-S 发表于 2015-2-10 18:17
还有有一点,如果a

a<b 的话,商为0余数为a啊{:2_33:}
作者: Zeus-S    时间: 2015-2-10 20:43
钟楼上的猫 发表于 2015-2-10 19:02
a

{:3_46:}我二逼了,余数和差搞混了{:3_46:},谢谢指点
作者: Zeus-S    时间: 2015-2-10 20:46
临汾皮皮 发表于 2015-2-10 19:01
我已经提交了,这是我基础测试题的答案,你们可以参考下~~,希望有所帮助

/*

你的题目不用输入么?我题目里有个输入,所以用了scanf函数。
作者: Zeus-S    时间: 2015-2-10 20:47
钟楼上的猫 发表于 2015-2-10 19:00
10/3得3   只取整数部分,还有局部变量最好初始化一下

能具体点么?哪个局部变量?不好意思额,我基础很差
作者: 钟楼上的猫    时间: 2015-2-10 21:21
Zeus-S 发表于 2015-2-10 20:47
能具体点么?哪个局部变量?不好意思额,我基础很差

视频里MJ说的局部变量都要初始化,就像你程序里的int a,b;     初始化后int  a = 0, b=0;
作者: Zeus-S    时间: 2015-2-10 21:40
钟楼上的猫 发表于 2015-2-10 21:21
视频里MJ说的局部变量都要初始化,就像你程序里的int a,b;     初始化后int  a = 0, b=0; ...

:handshake明了明了
作者: 恋梦    时间: 2015-2-10 22:15
上面这么多人都说了,我也不废话了,给你看看我的可以借鉴下
#include <stdio.h>

int main()
{
    // 首先提醒用户输入两个数
    printf("请输入任意两个数,并用“,”隔开\n");
   
    // 然后分别定义两个变量,用来保存用户输入的两个数值
    int a,b;
   
    // 接收用户输入的数值
    scanf("%d,%d", &a, &b);

    printf("和是%d+%d=%d\n", a, b, a+b);
    printf("差是%d-%d=%d\n", a, b, a-b);
    printf("积是%d*%d=%d\n", a, b, a*b);
    printf("商是%d/%d=%d\n", a, b, a/b);
    printf("取余是%d%%%d=%d\n", a, b, a%b);
   
    return 0;
}

作者: 仰望的繁华    时间: 2015-2-10 22:52
两个数,没说不能是小数。
作者: Zeus-S    时间: 2015-2-11 00:25
仰望的繁华 发表于 2015-2-10 22:52
两个数,没说不能是小数。

那输入和输出的时候,应该使用%f么?
作者: 仰望的繁华    时间: 2015-2-11 12:20
Zeus-S 发表于 2015-2-11 00:25
那输入和输出的时候,应该使用%f么?

用%f输出没问题,输入的话,就又有细节要考虑了。
float的话,运算结果会有误差。
用double的话,输出会自动类型提升不用管,输入就要用%lf了
然后小数 不能取余,还要来强制类型转换。

这样尽可能多的涵盖相关的知识点?
能不给你高分?
作者: 临汾皮皮    时间: 2015-2-11 20:02
Zeus-S 发表于 2015-2-10 20:46
你的题目不用输入么?我题目里有个输入,所以用了scanf函数。

只扣0.4分




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2