【发布时间】:2015-01-29 15:42:29
【问题描述】:
我正在尝试用 C 语言构建一个程序:
- 获取用户年龄
- 检查年龄是否在 18 到 120 岁之间
- 检查年龄是否不包含其他字符,例如字母、点等。
- 如果不在 18-120 之间或包含其他字符,请返回第 1 部分。
要检查数字 3,我认为我需要将用户的年龄扫描为 char,但我无法检查它是否在 18 到 120 之间。我不能使用数组或字符串。这是我现在拥有的代码,用于检查代码不包含其他字符:
void main() {
char age;
int error = 0;
do
{
error = 0;
printf("Please enter your age:");
scanf("%c", &name);
while (name != '\n')
{
if ((name<'0') || (name>'9')){
error++;
}
name = getchar();
}
} while (error != 0);
}
【问题讨论】:
-
不错的作业:D自己做! (如果不是功课,你就没有付出努力)
-
不清楚你是否在第 1 步成功了。也许你应该展示你到目前为止所做的事情。
-
得到一个char数组(C风格的字符串),然后用
strtol转换成数字。作为奖励,strtol会给你一个指向它找到的任何非法字符的指针。 -
在步骤 2 之前执行步骤 3 是有意义的。
-
正如我所说,不能使用数组或字符串,我知道如何单独检查 2 和 3,但不能一起检查:如果我将 age 定义为 int,我可以检查 2,如果我定义作为一个字符的年龄我可以检查 3. 但我该如何做呢?
标签: c loops char scanf getchar