如何在C ++中不返回值的情况下从int函数退出?

时间:2019-09-23 03:56:50

标签: c++

昨天我尝试用c ++解决问题。问题出在著名的“ Fizzbuzz”上。将以数字作为输入。对于3的每一个倍数,打印“ Fizz”。对于5的每一个倍数,打印“嗡嗡声”。对于3和5的倍数的数字,请打印“ FizzBu​​zz”而不是数字。如果数字不是3、5或两者的倍数,它将打印该数字。

一个例子:如果我输入5,它将显示如下输出:12Fizz4Buzz。但是问题是这位法官的模板代码如下:

#include<bits/stdc++.h>
using namespace std;
int FizzbuzzFunc(int num)
{

return 0;
}
int main()
{
int number;
cin>>number;
cout<<FizzbuzzFunc(number);
return 0;
}

每当我尝试通过将代码放入“ FizzbuzzFunc”来解决该问题时,它将在输出末尾打印一个额外的0。一个示例,如果我的代码看起来像这样:

#include<bits/stdc++.h>
using namespace std;
int FizzbuzzFunc(int num)
{

for(int i = 1; i <= num; i++)
{
if (i % 3 == 0 && i % 5 == 0)
{
cout<<"FizzBuzz";
}
else if(i % 3 == 0)
{
cout<<"Fizz";
}
else if(i % 5 == 0)
{
cout<<"Buzz";
}
else
{
cout<<i;
}
}

return 0;
}
int main()
{
int number;
cin>>number;
cout<<FizzbuzzFunc(number);
return 0;
}

,将输入设为5,则输出将如下所示:12Fizz4Buzz0。 如何从输出中删除多余的0?

2 个答案:

答案 0 :(得分:2)

如果声明该函数返回一个值,则它必须返回一个值。

  

从函数末尾流出就等于没有返回值   值;这导致返回值时出现不确定的行为   功能。

但是您的代码打印出额外的0的原因是因为您告诉它:

cout<<FizzbuzzFunc(number);

不要使用cout,只需调用函数即可。

FizzbuzzFunc(number);

此外,如果该函数不需要返回值,则可以将其返回类型设置为void

void FizzbuzzFunc(int num)

您可以使用return;

答案 1 :(得分:1)

执行cout<< FizzbuzzFunc(number);而不是FizzbuzzFun(number);。这样,您就不会打印该函数返回的值。如果不打算使用函数返回的值,则应使用void返回类型声明该函数。

使您的FizzbuzzFunc()函数返回如下的void返回类型:void FizzbuzzFunc(int num)。此版本的FizzbuzzFunc()不返回任何值,因此您不必从函数内部执行return 0;

相关问题