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

本帖最后由 道本真 于 2014-7-17 16:07 编辑

这是一道求平均值的问题,要求不管你输入几个正整数它都能算出它们的平均值,是不管几个!新人求解啊,有能力的帮个忙,没能力的赏个脸。。。。。跪求技术分啊。。。。

25 个回复

正序浏览

一一起加油~~~
回复 使用道具 举报
和楼主程序差不多,少几行代码,版主能否给加个分?{:3_64:}
  1. #include <stdio.h>

  2. int main()
  3. {
  4.         int num;
  5.         long sum = 0;
  6.         int count = 0;
  7.         printf("输入一个正整数(输入负数结束):");
  8.         scanf("%d", &num);
  9.         while (num >= 0)
  10.         {
  11.                 ++count;
  12.                 sum += num;
  13.                 printf("sum = %d, avg = %.2f\n", sum, (float)sum / count);
  14.                 printf("输入一个正整数(输入负数结束):");
  15.                 scanf("%d", &num);
  16.         }
  17.         return 0;
  18. }
复制代码



回复 使用道具 举报
好多高手啊,我是小白就不献丑了:#
回复 使用道具 举报
自己多去琢磨
回复 使用道具 举报
像JAVA之类的高级语言, 函数都可以接受多个参数, 并且是不确定个数的, 或者你可以考虑用一个大的数组把这些数字保存进行再进行运行, 是可以实现的
回复 使用道具 举报
道本真 发表于 2014-7-16 12:08
说得不明白是我的失误,就是提示你输入一个正整数,你输入完之后,它会提示你输入了几个数,平均值是多少 ...

2个变量,一个记录总和,一个记录个数
回复 使用道具 举报
道本真 发表于 2014-7-16 12:08
说得不明白是我的失误,就是提示你输入一个正整数,你输入完之后,它会提示你输入了几个数,平均值是多少 ...

2个变量,一个记录总和,一个记录个数
回复 使用道具 举报
用数组是最快的,2个思路
1,新建空长度数组,输入赋值给数组,然后循环相加得总和,然后除以数组长度,即为平均值
2,先获取总个数,新建相应长度数组,分别输入给每个元素赋值,然后...
回复 使用道具 举报

彼此共勉!
回复 使用道具 举报
本帖最后由 丶白菜你个小番 于 2014-7-17 14:17 编辑

1,定义一个足够大的数组接收你的输入,2,写一个函数,参数是数组和数组的大小,在函数中遍历数组求值。

回复 使用道具 举报 1 0
楼上回答都好高大上
回复 使用道具 举报
楼主加个油
回复 使用道具 举报
为梦想挺身而出 发表于 2014-7-16 19:12
把while上面的 printf 和scanf放到while里的if上面,后面的 printf和scanf删掉  前面的sum初始化0.0 ...

突然之间,我好像有点懂了:L
回复 使用道具 举报
道本真 发表于 2014-7-16 12:23
我也觉得有点不妥,所以代码scanf 我是写了2个 一个在while 外 一个在while 内,能只用一个scanf 就行我 ...

把while上面的 printf 和scanf放到while里的if上面,后面的 printf和scanf删掉  前面的sum初始化0.0
回复 使用道具 举报
fantacyleo 发表于 2014-7-16 12:10
你的代码已经非常好了,没什么性能问题。但有个bug,scanf要移到while循环内,否则只会读入一个数字。另 ...

我也觉得有点不妥,所以代码scanf 我是写了2个 一个在while 外 一个在while 内,能只用一个scanf 就行我就是想不出来,还有就是我没有想到输入负数时退出程序,感激不尽!
回复 使用道具 举报
道本真 发表于 2014-7-16 12:08
说得不明白是我的失误,就是提示你输入一个正整数,你输入完之后,它会提示你输入了几个数,平均值是多少 ...

你的代码已经非常好了,没什么性能问题。但有个bug,scanf要移到while循环内,否则只会读入一个数字。另外要增加读到负数时退出循环的判断
回复 使用道具 举报
陆习康 发表于 2014-7-16 11:12
看了楼主的提问,我有点懵,特别是那句:是不管几个。电脑怎么知道你要输入几个数啊,想了半天,还是没想出 ...

说得不明白是我的失误,就是提示你输入一个正整数,你输入完之后,它会提示你输入了几个数,平均值是多少,再次提示你输入一个正整数。。。这样一直循环,
比如:你输入1  它输出 个数1       平均值 1 又提示输入一个正整数
        你再输入8 它输出 个数2       平均值4.5 又提示你输入一个正整数
回复 使用道具 举报
看了楼主的提问,我有点懵,特别是那句:是不管几个。电脑怎么知道你要输入几个数啊,想了半天,还是没想出来怎么去弄。:(
回复 使用道具 举报
道本真 发表于 2014-7-16 09:18
这是我今天早上弄的,很感谢各位,我想问一下,有没有简单点,性能更好的,以求借鉴,我现在只是基础视频, ...

原来是这个意思啊,是我理解错了,不好意思
回复 使用道具 举报

写得很详细,非常感谢,万分感激:lol
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马