我得到解决的问题如下: - 写一个名为“is_digit”的函数接受一个字符作为输入,并返回一个整数值如果参数输入是0到9之间的ASCII数字,则为1。否则,该函数必须返回值0.C发出函数返回1当用户输入为0-9时ASCII
- 在主函数中,调用is_digit,并根据用户输入传入参数。然后主函数必须输出调用is_digit的结果。
这是我迄今为止
#include <stdio.h>
char is_digit(int x)
{
if (x > '48' && x < '57') //The ascII range between 0-9 (i think...)
{
return 1;
}
else
//Whatever the user input is it always runs the else
{
return 0;
//Is this what the question means by "function must return a value of 0"
}
}
int main()
{
char x;
printf("input: ");
scanf("%c", &x);
is_digit(x);
}
为什么我的程序没有返回1,如果我的用户输入是0-9?
更新版本与考虑到的意见:
#include <stdio.h>
char is_digit(char x)
{
if (x >= 48 && x <= 57)
{
printf("1");
return 1;
}
else
{
printf("0");
return 0;
}
}
int main()
{
char x;
printf("input: ");
scanf("%c", &x);
is_digit(x);
}
测试'if(x>'48'&& x <'57')'不正确。删除单引号,并使用'> ='而不是'>'(也可用'<='而不是'<') – Aziz
你正在比较一个int与一个字符(各种:两个元素的字符;不确定这是多么有效)。请使用和*读取*您的编译器警告。 – Evert
哎呀,修正了我的if语句,非常感谢!但我的功能仍然没有返回1 ..... –