这段代码有什么问题? (功能和价值)

Whats wrong with this code? (function and values)

#include <stdio.h>
#include <stdlib.h>

int getAge(void);

int main(void)
{
    int age = 0;
    getAge();
    printf("The age is %4d\n",age);
     system("PAUSE");
      return 0;
 }

 //The function gets the age until it is valid, and returns the vaild age
int getAge(void)
{
    const int MAX_AGE = 120;
   const int MIN_AGE = 0;
    int age = 0;
   int invalidAge = 0;
    printf("please enter your age (0-120): ");
    do
    {
        scanf("%d", &age);
        invalidAge = ( age > MAX_AGE || age < MIN_AGE );
        if( invalidAge )
        {
            printf("Invalid age! Please enter your age (0-120): ");
        }
    } while ( invalidAge );
    printf("Finally!!!\n");
    return age;
}

您好,这段代码有一个 运行 时间问题。谁能告诉我要更改什么? 没有编译错误。

这里的问题是,在你的代码中,

 getAge();

您忘记将 getAge(); 函数的 return 值收集到 age 变量中。因此,getAge() 函数的 returned 值总是被忽略,输出为 0。

您需要将密码更改为

  age = getAge();

将待存函数的return值存入age.

请在 "age" 变量中捕获 return 值,如下所示。

 int main(void)
    {
        int age = 0;
       age= getAge(); //catch the return value
        printf("The age is %4d\n",age);
         system("PAUSE");
          return 0;
     }