这段代码有什么问题? (功能和价值)
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;
}
#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;
}