在本教程中,您將學(xué)習(xí)使用函數(shù)來解決單個問題的不同方法。
為了更好地理解參數(shù)和函數(shù)返回,可以將用戶定義的函數(shù)歸類為:
考慮一種情況,您必須檢查素數(shù)。通過以上述4種不同的方式制作用戶定義的函數(shù),可以解決以下問題。
#include <iostream>
using namespace std;
void prime();
int main()
{
// 沒有參數(shù)傳遞給prime()
prime();
return 0;
}
// 函數(shù)的返回類型為void,因為未返回值。
void prime()
{
int num, i, flag = 0;
cout << "輸入一個正整數(shù)進行檢查: ";
cin >> num;
for(i = 2; i <= num/2; ++i)
{
if(num % i == 0)
{
flag = 1;
break;
}
}
if (flag == 1)
{
cout << num << " 不是質(zhì)數(shù)。";
}
else
{
cout << num << " 是質(zhì)數(shù)。";
}
}在上面的程序中,在main()中調(diào)用prime(),但沒有參數(shù)。
prime() 函數(shù)用來從用戶處獲取輸入的正數(shù),并檢查該數(shù)字是否為質(zhì)數(shù)。
由于prime()返回類型為void,因此該函數(shù)不返回任何值。
#include <iostream>
using namespace std;
int prime();
int main()
{
int num, i, flag = 0;
// 沒有參數(shù)被傳遞給prime()
num = prime();
for (i = 2; i <= num/2; ++i)
{
if (num%i == 0)
{
flag = 1;
break;
}
}
if (flag == 1)
{
cout<<num<<" 不是質(zhì)數(shù)。";
}
else
{
cout<<num<<" 是質(zhì)數(shù)。";
}
return 0;
}
// 函數(shù)的返回類型是int
int prime()
{
int n;
printf("輸入一個正整數(shù)進行檢查: ");
cin >> n;
return n;
}在上面的程序中,從main()調(diào)用prime()函數(shù),沒有參數(shù)。
prime()從用戶處獲取一個正整數(shù)。 由于該函數(shù)的返回類型為int,因此它將用戶輸入的數(shù)字返回給調(diào)用main()函數(shù)。
然后,在main()本身中檢查數(shù)字是否為質(zhì)數(shù)并打印到屏幕上。
#include <iostream>
using namespace std;
void prime(int n);
int main()
{
int num;
cout << "輸入一個正整數(shù)進行檢查: ";
cin >> num;
// 參數(shù)num被傳遞給函數(shù)prime()
prime(num);
return 0;
}
// 調(diào)用函數(shù)沒有返回值。 因此,函數(shù)的返回類型為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 << " 不是質(zhì)數(shù)。";
}
else {
cout << n << " 是質(zhì)數(shù)。";
}
}在上述程序中,首先要求用戶輸入正數(shù),該正數(shù)存儲在變量num中。
然后,將num傳遞給prime()函數(shù),在其中檢查并打印數(shù)字是否為質(zhì)數(shù)。
因為,prime()返回類型是void,prime()函數(shù)沒有返回值。
#include <iostream>
using namespace std;
int prime(int n);
int main()
{
int num, flag = 0;
cout << "輸入正整數(shù)進行檢查: ";
cin >> num;
// 參數(shù)num被傳遞給check()函數(shù)
flag = prime(num);
if(flag == 1)
cout << num << " 不是質(zhì)數(shù)。";
else
cout<< num << " 是質(zhì)數(shù)。";
return 0;
}
/* 此函數(shù)返回整數(shù)值。 */
int prime(int n)
{
int i;
for(i = 2; i <= n/2; ++i)
{
if(n % i == 0)
return 1;
}
return 0;
}在上面的程序中,向用戶詢問一個正整數(shù)并將其存儲在變量num中。
然后,將num傳遞給函數(shù)prime(),在其中檢查數(shù)字是否為質(zhì)數(shù)。
由于prime()的返回類型為int,因此將1或0返回給main()調(diào)用函數(shù)。 如果數(shù)字是質(zhì)數(shù),則返回1。 如果不是,則返回0。
在main()函數(shù)中,返回的1或0存儲在變量flag中,相應(yīng)的文本打印到屏幕上。
上面所有四個程序都提供相同的輸出結(jié)果,并且在技術(shù)上都是正確的程序。
對于選擇哪種方法沒有嚴格的指定。
根據(jù)具體情況以及您要如何解決問題來選擇特定的方法。