对于输入的所有变量,程序打印出拒绝,但我试图让它只在输入特定字母时打印出来,例如 'u'?

Program prints out declined for all variables entered, but I am trying to make it only print that out when a specific letter is entered e.g.'u'?

我正在尝试创建一个程序,该程序将在输入字母表中的一个字母时打印已接受,不包括 u。当输入 u 时,它会打印 declined。

#include <stdio.h>

int main(void) {
    char val;

    printf("Enter your letter : \n");
    val = scanf("%c", &val);
    
    if (val == 'u' || (val >= '0' || val <= '9'))
        printf("DECLINED\n");
    else
        print("ACCEPTED\n");

    return (0);
}

制定条件:

if (val == 'u' || (val >= '0' && val <= '9'))

而不是:

if (val == 'u' || (val >= '0' || val <= '9'))

这是一个错误:

val = scanf("%c, &val);

简单地这样做:

scanf("%c", &val);

如果你只想接受字母,我认为你应该将 char 转换为 int(ASCII 值)并像这样检查

      #include <stdio.h>

      int main () {
      char val;
      int c;
      printf("Enter your letter :\n");

      scanf("%c", &val);
      c = (int) (val);

      if ( ( val != 'u')   &&  (c >= 97 && c <= 122) ||  (c >= 65 && c <= 90)){
             printf("ACCEPTED\n");
      } else {
             printf("DECLINED\n");
      }


      return (0);
       }