我必须计算以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);
}
}
答案 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)
问题是sum
是sumNumbers
每次调用的新变量,所以每次都重新开始为零。
稍微不同的方法,分离过滤,求和和输出:
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;
}