2015-10-17 240 views
0

问题的第一部分是写一个程序:查找值的平均值,最大值和最小值进入

提示用户输入整数值,并保持运行总和。

#include<iostream> 
using namespace std; 

int main() 
{ 
    int n, sum = 0; 
    while(n != 0) 
    { 
     cout << "Enter number :"; 
     cin >> n; 

     if(n <= 0) 
      break; 

     sum += n; 
    } 

,第二部分是:

修改前面的程序打印出阅读的最大和最小数量以及平均。同时改变提示以显示仍然要输入的数字的数量。

#include<iostream> 
using namespace std; 

int main() 
{ 
    float n, sum=0.0, minimum=1.0, maximum=0.0, average; 
    int i = 0, x; 

    while(n != 0) 
    { 
     cout << "Enter number" << (i+1) << " :"; 
     cin >> n; 

     if(n <= 0) 
      break; 

     sum += n; 
     i++; 

     if(n > maximum) 
     { 
      maximum = n; 
     } 

     if(n <= minimum) 
     { 
      minimum = n; 
     } 

     x = x + (i + 1); 
    } 

cout << "Total=" << sum << endl; 

average = sum/x; 

cout << "Average=" << average << endl; 
cout << "Maximum=" << maximum << endl; 
cout << "Minimum=" << minimum << endl; 
return 0; 
} 

我的问题是,我不能够计算平均,并显示仍然要输入号码的数量。任何人都可以帮忙吗?

+1

您是否听说过缩进?可能有助于使代码易读 –

+0

似乎正在处理类似的问题http://stackoverflow.com/questions/33186635/determining-maximum-and-mean-of-an-user-provided-array –

+0

你是什么意思是 “如何显示还要输入的数字的数量”。编辑:sry,我现在明白了。但是你怎么解决'cout <<“输入数字<< <<(i + 1)<<”:“;' – JojOatXGME

回答

0

问题是你将总和除以x。为什么你需要这个x?我是你输入的对象的数量,只需将总和除以i;
还有一个bug,你定义了变量n并且没有设置值,并且你想把它与0比较。它可以工作不正确。

#include<iostream> 
    using namespace std; 
    int main() 
    { 
     float n = 1,sum=0.0,minimum=1.0,maximum=0.0,average; 
     int i=0; 

     while(n!=0) 
     { 
      cout<<"Enter number"<<(i+1)<<" :"; 
      cin>>n; 
      if(n<=0) 
       break; 
      sum+=n; 
      i++; 
      if(n>maximum) 
      { 
       maximum=n; 
      } 

      if(n<=minimum) 
      { 
       minimum=n; 
      } 
     } 

     cout<<"Total="<<sum<<endl; 

     average=sum/i; 

     cout<<"Average="<<average<<endl; 
     cout<<"Maximum="<<maximum<<endl; 
     cout<<"Minimum="<<minimum<<endl; 
     return 0; 
    } 
相关问题