簡體   English   中英

C++ ; 編寫一個讀取十個整數的程序

[英]C++ ; Write a program that reads in ten whole numbers

編寫一個程序,讀取十個整數並輸出所有大於零的數字之和,所有小於零的數字之和(將是負數或零),以及所有數字之和,無論是正、負或零。 用戶只輸入十個數字一次,用戶可以按任意順序輸入它們。 您的程序不應要求用戶分別輸入正數和負數。 現在修改這個程序,使其輸出所有正數的總和、所有正數的平均值、所有非正數的總和、所有非正數的平均值、所有正數和非正數的總和,以及輸入的所有數字的平均值。

這是我到目前為止...

#include <iostream>
using namespace std;
int main ()
{
     int number, negative_sum=0, positive_sum=0, sum=0, average_neg, 
         average_pos, average;
     int count=0, positiveCount=0, negativeCount=0; 

     cout << "Please Input 10 whole numbers(Each number should be separated by space or Enter)\n";
     for(int i=0; i < 10; i++)
     {
         cin >> number;

     if (number >= 0 )
     {
         positive_sum += number;
         positiveCount++;  
     } 
     else     
     {
         negative_sum += number ; 
         negativeCount++; 
     } 
     }

     average_pos = positive_sum / positiveCount;
     average_neg = negative_sum / negativeCount; 
     sum = positive_sum + negative_sum;
     average = sum / count; 

     cout << "The Total sum of Positive Numbers is " << positive_sum << " and the average of \nThe postive numbers entered is ";
     cout << average_pos<< endl; 
     cout << "The Total sum of Negative Numbers is " << negative_sum << " and the average of \nThe negative numbers entered is ";
     cout << average_neg << endl; 
     cout << "The Total sum of numbers entered is " << sum << " and its average is "<< average << endl;

     system("PAUSE");
     return 0;
}

基本上它只是在我輸入數字后多次打印“請輸入 10 個整數(每個數字應以空格或 Enter 分隔)\\n”部分。

您的代碼的問題在於, average_pos = positive_sum / positiveCount;行中出現零除以零除法average_pos = positive_sum / positiveCount; average = sum / count; average_neg = negative_sum / negativeCount; . 為了避免這種情況,您可以添加if條件,僅當positiveCountnegativeCountcount are greater than 0時才執行除法

此外,在您的代碼中,您將sum除以countaverage = sum / count; 但在您的代碼中沒有任何地方增加count 您的for循環也提前結束。

正確的修改代碼

#include <iostream>
using namespace std;


int main ()
{

int number, negative_sum=0, positive_sum=0, sum=0, average_neg=0, 
average_pos=0, average=0;
int count=0, positiveCount=0, negativeCount=0; 
cout << "Please Input 10 whole numbers(Each number should be separated by space or       Enter)\n";

for(int i=0;i<10;i++)
 {

 //cout<<"i is"<<i<<endl;
cin >> number;

if (number >= 0 )
 {
     positive_sum += number;
     positiveCount++;  count++;
 } 

 else     
 {
     negative_sum += number ; 
     negativeCount++; count++;
 }  
 }
if(positiveCount>0)
{
 average_pos = positive_sum / positiveCount;
}

if(negativeCount>0)
{ 
average_neg = negative_sum / negativeCount; 
}

sum = positive_sum + negative_sum;

if(count>0)
{
  average = sum / count;
} 

 cout<<average_pos;
 cout << "The Total sum of Positive Numbers is " << positive_sum << " and the average of   \nThe postive numbers entered is ";
 cout << average_pos<< endl; 
 cout << "The Total sum of Negative Numbers is " << negative_sum << " and the average of  \nThe negative numbers entered is ";
 cout << average_neg << endl; 
 cout << "The Total sum of numbers entered is " << sum << " and its average is "<< average << endl;

 system("PAUSE");
 return 0;
 }
#include <iostream>
using namespace std;
int main ()
{
int number, negative_sum=0, positive_sum=0, sum=0, average_neg = 0,
average_pos = 0, average = 0;
int count=0, positiveCount=0, negativeCount=0;
cout << "Please Input 10 whole numbers(Each number should be separated by space or Enter)\n";
for(int i=0; i < 10; i++)
{
cin >> number;
if (number >= 0 )
{
positive_sum += number;
positiveCount++;
}
else
{
negative_sum += number ;
negativeCount++;
}
}
average_pos = positive_sum / positiveCount;
average_neg = negative_sum / negativeCount;
sum = positive_sum + negative_sum;
average = sum / count;
cout << "The Total sum of Positive Numbers is " << positive_sum << " and the average of \nThe postive numbers entered is ";
cout << average_pos<< endl;
cout << "The Total sum of Negative Numbers is " << negative_sum << " and the average of \nThe negative numbers entered is ";
cout << average_neg << endl;
cout << "The Total sum of numbers entered is " << sum << " and its average is "<< average << endl;
system("PAUSE");
return 0;
}

嘗試這個

#include <iostream>
using namespace std;
int main ()
{
     int number, negative_sum=0, positive_sum=0, sum=0, average_neg = 0, 
         average_pos = 0, average = 0;
     int count=0, positiveCount=0, negativeCount=0; 

 cout << "Please Input 10 whole numbers(Each number should be separated by space or Enter)\n";
  for(int i=0; i < 10; i++)
  {
     cin >> number;
     if (number >= 0 )
     {
         positive_sum += number;
         positiveCount++;  
     } 
     else     
     {
         negative_sum += number ; 
         negativeCount++; 
     } 
  }
  average_pos = positive_sum / positiveCount;
  average_neg = negative_sum / negativeCount; 
  sum = positive_sum + negative_sum;
  average = sum / count; 

 cout << "The Total sum of Positive Numbers is " << positive_sum << " and the average of \nThe postive numbers entered is ";
 cout << average_pos<< endl; 
 cout << "The Total sum of Negative Numbers is " << negative_sum << " and the average of \nThe negative numbers entered is ";
 cout << average_neg << endl; 
 cout << "The Total sum of numbers entered is " << sum << " and its average is "<< average << endl;

 system("PAUSE");
 return 0;
}

希望這可以幫助 ... :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM