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