#include<stdio.h>
int GetPositiveInt(void);
int main(void)
{
int num = GetPositiveInt();
printf("%d",num);
return 0;
}
int GetPositiveInt(void)
{
int n;
do
{
printf("Enter a positive number : ");
scanf("%d",&n);
}while(n<=0);
}
输出值是
n
的值,但我不知道它是如何返回到num
的。scanf()
和printf()
是否影响函数的return
值?如果我在
printf("%d",7)
之后添加一个类似while
的语句,那么输出就是71
,不知道1
是怎么来的。This is我的输出。仅供参考。
要求的文本:-
usr@usr:~/C_程序$gcc-std=c99 return.C-o return
usr@usr:~/C_programs$。/返回
输入正数:45
45usr@usr:~/C_programs$。/返回
输入正数:89
89usr@usr:~/C\u程序$
最佳答案
在以下函数中:
int GetPositiveInt(void)
{
int n;
do
{
printf("Enter a positive number : ");
scanf("%d",&n);
}while(n<=0);
}
该函数预期
return
一个int
值,而没有return
语句。您可能想返回n
的值。这可以通过添加适当的return
语句来实现: return n;
这样地:
int GetPositiveInt(void)
{
int n;
do
{
printf("Enter a positive number : ");
scanf("%d",&n);
}while(n<=0);
return n;
}
关于c - 请解释此代码的输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30029113/