zapline 发表于 2010-3-1 12:52

编程小练习(5)

题目:

求任意个数(大于0,小于2的32次方)的平均数

输入数字,按回车键确定输入,最后输入0并按回车键表示输入结束

输出之前输入的所有数的平均数

例如:
输入   
1
3
5
0
输出
3

输入
2
2
2
3
0
输出
2.25

czjh2008 发表于 2010-3-1 14:25

呵呵!来学习……

chenyuzheng 发表于 2010-3-1 19:42

#include "stdio.h"
void main()
{ long double j,isum=0;
   int i,n=0;
   for(i=0;;i++)
{   scanf("%lf",&j);
   if(j!=0) isum=isum+j,n++;
       else break;}
printf("%0.2lf",isum/n);
}


斑竹!long double 能达到32位吗?

blueapplez 发表于 2010-3-1 20:04

本帖最后由 blueapplez 于 2010-3-1 20:26 编辑

我认为楼上的代码很完美了   
ps . 楼下说long double不够用俺就不懂是啥意思不知道为什么不够用

刚才我脑残了。。。

zapline 发表于 2010-3-1 20:10

斑竹!long double 能达到32位吗?
chenyuzheng 发表于 2010-3-1 19:42 http://bbs.52pojie.cn/images/common/back.gif


    j只需要int就够了
isum照你这样写long double也是不够的

253891489 发表于 2010-3-1 20:33

本帖最后由 253891489 于 2010-3-1 21:16 编辑

c语言来做



没测试



#include "stdio.h"
void main()
{
int i,n;
   float sum=0;
while(1)
{
scanf("%d",i)
sum+=i;
    n++;
while(i==0)
{
printf("%f",sum/n);
}
}
}

blueapplez 发表于 2010-3-1 20:44

楼上貌似是个死循环吧

253891489 发表于 2010-3-1 20:44

本帖最后由 253891489 于 2010-3-1 21:16 编辑

c#来写



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{

int n=1;

float sum=0;

int i = int.Parse(Console.ReadLine());

sum+=i;
n++;
if (i ==0)

{

Console.WriteLine("{0}",sum/n);

}





}

}
}



没测试

加点钱吧

253891489 发表于 2010-3-1 20:46

楼上貌似是个死循环吧
blueapplez 发表于 2010-3-1 20:44 http://dx.52pojie.cn/images/common/back.gif


    没注意错了 不好意思 呵呵 我去该下

明次 发表于 2010-3-1 21:05

最近开学都没啥时间:(eew


#include <iostream>
using namespace std;
int main()
{
double number,sum=0,i=0;
double average=0;
cout<<"number:"<<endl;
a:;
cin>>number;
while(number!=0)
{
i++;
sum=sum+number;
goto a;
}
average=sum/i;
cout<<"平均数:"<<average<<endl;
return 0;
}



页: [1] 2
查看完整版本: 编程小练习(5)