c语言的用户定义函数的类型
在本教程中,您将学习如何使用函数解决相同问题。
以下四个程序检查用户输入的整数是否为素数。
以下程序的所有输出都相同,我们在每个示例中创建了用户定义的函数。 但是,每个例子采用的方法都不一样。
示例1 :没有传递参数,也没有返回值#include
voidcheckPrimeNumber (;
intmain () )
{
checkPrimeNumber (; //未传递参数
返回0;
}
//返回类型为void,表示不返回任何值
voidcheckPrimeNumber (
{
intn,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。 因此,此函数不返回值。
示例2 :不传递参数,但返回值#include
intgetInteger (
intmain () )
{
intn,I,flag=0;
//没有传递任何参数
n=getInteger (;
for(I=2; i=n/2; I )
{
if(n%I==0) {
flag=1;
布雷克;
}
}
if(flag==1) )。
printf('%d不是素数。' 、n;
else
printf('%d是素数。' 、n;
返回0;
}
//返回用户输入的整数
intgetInteger ()
{
intn;
输入printf ('正整数: );
scanf('%d ',n );
返回;
}
n=getInteger (; 语句中的方括号表示没有传递给函数的参数。 然后,将函数返回的值分配给n。
其中getInteger ()函数从用户获取输入并返回。 main ) )函数内部包含用于检查数字是否为素数的代码。
示例3 :传递了参数,但没有返回值#include
voidcheckprimeanddisplay(intn;
intmain () )
{
intn;
输入printf ('正整数: );
scanf('%d ',n );
//n传递给函数
checkprimeanddisplay(n;
返回0;
}
//返回类型为void,表示不返回任何值
voidcheckprimeanddisplay(intn )。
{
inti,flag=0;
for(I=2; i=n/2; I )
{
if(n%I==0) {
flag=1;
布雷克;
}
}
if(flag==1) )。
printf('%d不是素数。' 、n;
else
printf('%d是素数。' 、n;
}
用户输入的整数值将传递给checkPrimeAndDisplay ()函数。
其中checkPrimeAndDisplay ()函数检查传递的参数是否为素数,并显示相应的消息。
示例4 :传递参数和返回值#include
intcheckprimenumber(intn;
intmain () )
{
intn、flag;
输入printf ('正整数: );
scanf('%d ',n );
传递给//ncheckprimenumber ()函数
//返回的值被分配给flag变量
flag=checkprimenumber(n;
if(flag==1) )。
printf('%d不是素数。' 、n;
else
printf('%d是素数。' 、n;
返回0;
}
从//函数返回int
intcheckprimenumber(intn )。
{
inti;
for(I=2; i=n/2; I )
{
if(n%I==0) ) ) )。
返回1;
}
返回0;
}
来自用户的输入将传递给checkPrimeNumber ()函数。
checkPrimeNumber ()函数检查传递的参数是否为素数。
如果传递的参数是素数,则函数返回0。 如果传递的参数不是素数,函数返回1。 将返回值分配给flag变量。
根据flag为0或1,main ()函数将打印相应的消息。
哪个方法比较好?
好吧,这取决于你要解决的问题。 在这种情况下,最好传递参数并从函数返回值(例4 )。
函数必须执行特定的任务。 checkPrimeNumber ()函数不接受用户输入,也不显示相应的消息。 只检查数字是否是素数。