C ++查找数字总和,直到用户输入结束

时间:2014-12-04 06:54:12

标签: c++

我必须计算以3,5或7结尾的所有数字的总和,并将其输出到main()中。我已经完成了,但输入文件为:

5 35 2 3 28 16 17

我得535030017作为输出。它只是没有总结它们,但它们很好。这是我的C ++:

#include<iostream>
using namespace std;

void sumNumbers(int number){
    int sum = 0;

        if (number%10==3||number%10==5||number%10==7){
            sum += number;
        }

    cout << sum;
}

int main ()
{
    int x;
    while(cin >> x){
        sumNumbers(x);
    }
}

4 个答案:

答案 0 :(得分:1)

如果你需要总和那么你应该这样做。

#include<iostream>
using namespace std;

int sumNumbers(int sum, int number){


    if (number%10==3||number%10==5||number%10==7){
        sum += number;
    }
    cout << sum;
    return sum;
}

int main ()
{
   int sum = 0;
   int x;
   while(cin >> x){
       sum = sumNumbers(sum, x);
   }
}

答案 1 :(得分:1)

以下内容应解决您的问题:

#include<iostream>
using namespace std;

void sumNumbers(int& sum, int number)
{
    if (number%10==3||number%10==5||number%10==7)
    {
       sum += number;
    }

    cout << sum << endl;
}

int main ()
{
    int x;
    int sum = 0;
    while(cin >> x)
    {
       sumNumbers(sum, x);
    }

    return 0;
}

答案 2 :(得分:0)

试试这个: -

#include<iostream>
using namespace std;

int sumNumbers(int sum, int number){
    if (number%10==3||number%10==5||number%10==7){
        sum += number;
    }
    return sum;
}

int main ()
{
 int x, sum=0;
 while (cin >> x){
    sum = sumNumbers(sum, x);
 }
 cout<<"Sum of the numbers ending with 3,5 and 7 is "<<sum;
}

我建议你对用户输入设置一个限制,否则程序会继续运行直到用户手动打破它。

这只有在循环中断时才会起作用。

答案 3 :(得分:0)

问题是sumsumNumbers每次调用的新变量,所以每次都重新开始为零。

稍微不同的方法,分离过滤,求和和输出:

int filterNumber(int number)
{
   int ones = number % 10;
   if (ones == 3 || ones == 5 || ones == 7)
   {
      return number;
   }
   else
   {
      return 0;
   }
}

int main()
{
   int sum = 0;
   int x = 0;
   while(cin >> x){
      sum += filterNumber(x);
   }
   std::cout << sum << std::endl;
}