编辑这个页面须要登录或更高权限!
在本教程中,您将学习使用函数来解决同一问题的不同方法。
下面的这4个程序检查用户输入的整数是否是质数。
下面所有这些程序的输出是相同的,并且在每个示例中我们都创建了一个用户定义的函数。但是,我们在每个示例中采用的方法都是不同的。
#include <stdio.h> void checkPrimeNumber(); int main() { checkPrimeNumber(); //没有传递参数 return 0; } //返回类型为void,表示不返回任何值 void checkPrimeNumber() { int n, i, flag = 0; printf("输入一个正整数: "); scanf("%d",&n); for(i=2; i <= n/2; ++i) { if(n%i == 0) { flag = 1; } } if (flag == 1) printf("%d 不是质数。", n); else printf("%d 是个质数。", n); }
checkPrimeNumber()函数接收用户的输入,检查它是否是质数,并将其显示在屏幕上。
main()函数内部checkPrimeNumber();的括号中的空括号表示没有参数传递给函数。
函数的返回类型为void。因此,该函数不返回任何值。
#include <stdio.h> int getInteger(); int main() { int n, i, flag = 0; //没有传递任何参数 n = getInteger(); for(i=2; i<=n/2; ++i) { if(n%i==0){ flag = 1; break; } } if (flag == 1) printf("%d 不是质数。", n); else printf("%d 是质数。", n); return 0; } //返回用户输入的整数 int getInteger() { int n; printf("输入一个正整数: "); scanf("%d",&n); return n; }
n = getInteger();语句中的空括号表示没有参数传递给该函数。并且,将从函数返回的值分配给n。
在此,getInteger()函数从用户处获取输入并返回。main()函数内部包含用于检查数字是否为质数的代码。
#include <stdio.h> void checkPrimeAndDisplay(int n); int main() { int n; printf("输入一个正整数: "); scanf("%d",&n); // n被传递给函数 checkPrimeAndDisplay(n); return 0; } //返回类型为void,表示不返回任何值 void checkPrimeAndDisplay(int n) { int i, flag = 0; for(i=2; i <= n/2; ++i) { if(n%i == 0){ flag = 1; break; } } if (flag == 1) printf("%d 不是质数。", n); else printf("%d 是个质数。", n); }
用户输入的整数值将传递给checkPrimeAndDisplay()函数。
在此,checkPrimeAndDisplay()函数检查传递的参数是否为质数,并显示适当的消息。
#include <stdio.h> int checkPrimeNumber(int n); int main() { int n, flag; printf("输入一个正整数: "); scanf("%d",&n); //n传递给checkPrimeNumber()函数 //返回的值分配给flag变量 flag = checkPrimeNumber(n); if (flag == 1) printf("%d 不是质数。", n); else printf("%d 是个质数。", n); return 0; } //从函数返回int int checkPrimeNumber(int n) { int i; for(i=2; i <= n/2; ++i) { if(n%i == 0) return 1; } return 0; }
来自用户的输入将传递给checkPrimeNumber()函数。
checkPrimeNumber()函数检查传递的参数是否为质数。
如果传递的参数是质数,则函数返回0。如果传递的参数是非质数,则函数返回1。将返回值分配给flag变量。
根据flag是0或1,main()函数会打印一条适当的消息。
好吧,这取决于您要解决的问题。在这种情况下,传递参数并从函数返回值更好(示例4)。
函数应执行特定任务。checkPrimeNumber()函数不接受用户输入,也不显示适当的消息。它仅检查数字是否为质数。