A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© .Drenched 中级黑马   /  2014-4-21 21:54  /  2367 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 .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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

7 个回复

倒序浏览
写的不好,因为返回值不一定是整数,如7+8=15  15/2=7.5.你所有的值都是拿整数接收了

点评

这个我有考虑到  发表于 2014-4-21 22:06
回复 使用道具 举报
#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-4-21 23:14

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
???????
回复 使用道具 举报
觉得下面的写法比上面的写法要好。因为输出的平均数不一定是整数。
回复 使用道具 举报

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

   double  a;
   a = (double )(10 / 3) ;
  printf("%lf",a);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马