help me!请问我这是错在哪儿了?

img


为什么编译运行的结果只出现了一个C?而其他的都出现布料呢?是因为我char用错了吗?还是其他的?

char 型 你写成int了
换成%c 即可

scanf类型不匹配,把%d改成%c就行了。

你应该把abcd定义成int,而不是char
char只占一个字节,而你用%d去给它赋值,结果造成你把无关内存给赋值了
%d会给4个地址赋值,你在给d赋值的时候把abc的值也改成0 了

img


测试了一下,没问题的啊

这么改,供参考:

#include <stdio.h>
int main()
{
    int   a, b, c, d; //char  修改
    scanf("%d %d %d %d",&a, &b, &c, &d);
    printf("%c %c %c %c", a, b, c, d);
    return 0;
}

//83 78 80 67
//S N P C