15588686105 发表于 2020-9-19 14:13:29

为啥提示num not dcleard

# include <stdio.h>
int main()
{
        int n=0;
        int a;
        int mum;
        printf("输入合法数字: ");
        getchar("%c",&num);
        if (num > '0' && num < '9')
        {
        a=num;
        n++;}
        printf("a");

        return 0;
}

还有为什么数组要用 int定义啊 那如果要用列表怎么定义啊

风过无痕1989 发表于 2020-9-19 14:25:09

你弄错了吧?定义的是 mum,使用的是 num

15588686105 发表于 2020-9-19 14:27:08

风过无痕1989 发表于 2020-9-19 14:25
你弄错了吧?定义的是 mum,使用的是 num

哦哦 可还是不对啊

风过无痕1989 发表于 2020-9-19 14:27:37

本帖最后由 风过无痕1989 于 2020-9-19 14:59 编辑


# include <stdio.h>
int main()
{
      int n=0;
      int a;                  // 有些编译器不支持不定长数组,如 VC++6.0
      int num;                  // 你此处定义是的 mum ,而不是 num
      printf("输入合法数字: ");
      num = getchar();            // getchar(void)返回无符号数,不能带控制参数
      if (num > '0' && num < '9')
      {
      a=num;
      n++;}
      printf("a");

      return 0;
}

15588686105 发表于 2020-9-19 14:32:21

风过无痕1989 发表于 2020-9-19 14:27


是不是getchar要num=getchar()啊

风过无痕1989 发表于 2020-9-19 14:41:50

15588686105 发表于 2020-9-19 14:27
哦哦 可还是不对啊

还有就是 getchar() 函数了及 a 了

虽然你前面有一个 int n = 0; 但比较旧的编译器(比如 VC++6.0)还是不允许这么使用

getchar()函数的作用是从计算机终端(一般为键盘)获取一个无符号字符。getchar()函数只能接收一个字符,其函数值就是从输入设备获取到的字符。

getchar(void)从标准输入 stdin 获取一个字符(一个无符号字符)。这等同于getc带有 stdin 作为参数。如果到达文件末尾或发生读错误,则返回 EOF。

风过无痕1989 发表于 2020-9-19 14:44:24

15588686105 发表于 2020-9-19 14:32
是不是getchar要num=getchar()啊

这样使用是可以,那样带控制格式的用法就不正确了

15588686105 发表于 2020-9-19 14:59:55

风过无痕1989 发表于 2020-9-19 14:41
还有就是 getchar() 函数了及 a 了

虽然你前面有一个 int n = 0; 但比较旧的编译器(比如 VC++6.0) ...

我一直吧getchar当带循环的scanf用的哈哈

风过无痕1989 发表于 2020-9-19 15:04:41

15588686105 发表于 2020-9-19 14:59
我一直吧getchar当带循环的scanf用的哈哈

上面的程序已经可以正常运行了,我也编辑修改加上了注释。

我不知道你定义那个数组要干什么,,所以不好帮你怎么改,随意地改成10元素了,你根据你的要求再修改。

如果你的问题解决了,请给个最佳答案吧

乐乐学编程 发表于 2020-9-21 00:44:38

来看看啥情况
页: [1]
查看完整版本: 为啥提示num not dcleard