黑马程序员技术交流社区

标题: 关于输出两个整数的平均数的问题 [打印本页]

作者: .Drenched    时间: 2014-4-21 21:54
标题: 关于输出两个整数的平均数的问题
本帖最后由 .Drenched 于 2014-4-24 02:32 编辑

我觉得下面的写法比上面的写法要好。因为输出的平均数不一定是整数。3+4=7,7/2=3.5。但是感觉不对,大家讨论下。

1>
  1. //提示用户输入两个整数,并输出两个整数的平均数
  2. #include <stdio.h>

  3. int main()
  4. {
  5.     int number1,number2;
  6.    
  7.     printf("请输入第一个整数:");
  8.    
  9.     scanf("%d",&number1);
  10.    
  11.     printf("请输入第二个整数:");
  12.    
  13.     scanf("%d",&number2);
  14.    
  15.     int average = (number1+number2)/2;
  16.    
  17.     printf("%d\n",average);
  18.    
  19.     return 0;
  20. }
复制代码

2>
  1. //提示用户输入两个整数,并输出两个整数的平均数
  2. #include <stdio.h>

  3. int main()
  4. {
  5.     int number1,number2;
  6.    
  7.     float average;
  8.    
  9.     printf("请输入第一个整数:");
  10.    
  11.     scanf("%d",&number1);
  12.    
  13.     printf("请输入第二个整数:");
  14.    
  15.     scanf("%d",&number2);
  16.    
  17.     average = (float)(number1+number2)/2.0;
  18.    
  19.     printf("%f\n",average);
  20.    
  21.     return 0;
  22. }
复制代码

作者: D调的沉默    时间: 2014-4-21 22:01
写的不好,因为返回值不一定是整数,如7+8=15  15/2=7.5.你所有的值都是拿整数接收了
作者: blz01003hm    时间: 2014-4-21 23:11
#include <stdio.h>

int main()
{
    int number1,number2;
    double average=0.0;

    printf("请输入第一个整数:");

    scanf("%d",&number1);

    printf("请输入第二个整数:");

    scanf("%d",&number2);

    average = (double)(number1+number2)/2;//类型转换就行了

    printf("%f\n",average);

    return 0;
}
作者: 王绍明    时间: 2014-9-27 18:30
???????
作者: 计算机的淡定    时间: 2014-10-18 08:12
觉得下面的写法比上面的写法要好。因为输出的平均数不一定是整数。
作者: 飞奔的坦克    时间: 2014-11-1 00:12
blz01003hm 发表于 2014-4-21 23:11
#include

int main()

这种方法是错误的,本质上没有解决平均数 是不是 为小数的情况。
比如 写个伪代码,你 试试就知道了。

   double  a;
   a = (double )(10 / 3) ;
  printf("%lf",a);




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