📅  最后修改于: 2020-09-25 05:50:01             🧑  作者: Mango
为了更好地理解参数和函数返回,可以将用户定义的函数归类为:
考虑一种情况,您必须检查素数。通过以上述4种不同的方式制作用户定义的函数 ,可以解决以下问题。
# include
using namespace std;
void prime();
int main()
{
// No argument is passed to prime()
prime();
return 0;
}
// Return type of function is void because value is not returned.
void prime()
{
int num, i, flag = 0;
cout << "Enter a positive integer enter to check: ";
cin >> num;
for(i = 2; i <= num/2; ++i)
{
if(num % i == 0)
{
flag = 1;
break;
}
}
if (flag == 1)
{
cout << num << " is not a prime number.";
}
else
{
cout << num << " is a prime number.";
}
}
在上面的程序中,没有参数的main()调用prime()
。
prime()
从用户处获取正数,并检查该数字是否为质数。
由于prime()
返回类型为void
,因此该函数不会返回任何值。
#include
using namespace std;
int prime();
int main()
{
int num, i, flag = 0;
// No argument is passed to prime()
num = prime();
for (i = 2; i <= num/2; ++i)
{
if (num%i == 0)
{
flag = 1;
break;
}
}
if (flag == 1)
{
cout<> n;
return n;
}
在上面的程序中,没有参数的main()
函数会调用prime()
函数 。
prime()
从用户处获取一个正整数。由于该函数的返回类型为int
,因此它将用户输入的数字返回给调用main()
函数。
然后,在main()本身中检查数字是否为质数并打印到屏幕上。
#include
using namespace std;
void prime(int n);
int main()
{
int num;
cout << "Enter a positive integer to check: ";
cin >> num;
// Argument num is passed to the function prime()
prime(num);
return 0;
}
// There is no return value to calling function. Hence, return type of function is void. */
void prime(int n)
{
int i, flag = 0;
for (i = 2; i <= n/2; ++i)
{
if (n%i == 0)
{
flag = 1;
break;
}
}
if (flag == 1)
{
cout << n << " is not a prime number.";
}
else {
cout << n << " is a prime number.";
}
}
在上面的程序中,首先要向用户询问存储在变量num
中的正数。
然后,将num
传递给prime()
函数 ,在该函数中检查并打印数字是否为质数。
由于prime()
的返回类型为void
,因此该函数不会返回任何值。
#include
using namespace std;
int prime(int n);
int main()
{
int num, flag = 0;
cout << "Enter positive integer to check: ";
cin >> num;
// Argument num is passed to check() function
flag = prime(num);
if(flag == 1)
cout << num << " is not a prime number.";
else
cout<< num << " is a prime number.";
return 0;
}
/* This function returns integer value. */
int prime(int n)
{
int i;
for(i = 2; i <= n/2; ++i)
{
if(n % i == 0)
return 1;
}
return 0;
}
在上面的程序中,向用户询问一个正整数并将其存储在变量num
。
然后,将num
传递给函数 prime()
,在其中检查数字是否为质数。
由于prime()
的返回类型为int
,因此将1或0返回给main()
调用函数。如果数字是质数,则返回1。如果不是,则返回0。
返回main()
函数,将返回的1或0存储在变量flag
,并将相应的文本打印到屏幕上。
上面所有四个程序都提供相同的输出,并且在技术上都是正确的程序。
对于选择哪种方法没有严格的规定。
根据具体情况以及您要如何解决问题来选择特定的方法。