#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/

10-11 23:12
查看更多