1

所以这是代码

void main()
{
  unsigned char n,t;
  scanf("%hhu %hhu",&n,&t);
  printf("%hhu %hhu",n,t);
}

问题是当我分别输入 5 和 1 时,输出为 0 和 1。n为0 , t为 1 。但是,当我将类型从 char 更改为 int/unsigned 时,输出是正确的:5 和 1。

问题是为什么用 char 询问(数字)输入会给出无效值?

4

2 回答 2

3

int main(void)

scanf("%hhu %hhu",&n,&t);

这里 ---------- ^ ------^ unsigned char *是预期的

同样的printf("%hhu %hhu",n,t);

所以改变

char n,t;

unsigned char n,t;

于 2013-04-04T08:59:39.797 回答
0

Besides that it is

int main(void) 

at least, you also might like to also add the necessary prototypes by including the appropriate header:

#include <stdio.h>
于 2013-04-04T10:47:45.220 回答