#include
int main()
{
int couple;
char M[1000];
scanf("%d", &couple);
//scanf("%s", &M[0]); 为什么这里用%s才能保证输入的数据赋值给M[0]
scanf("%c", &M[0]);
printf("%c\n", M[0]);
return 0;
}
scanf("%c", &M[0]); 只是输入一个字符而已啊
%s才是输入一个字符串
scanf()函数详细说明,供参考:https://baike.baidu.com/item/scanf/10773316?fr=aladdin
代码修改如下,原因见注释:
#include <stdio.h>
int main()
{
int couple;
char M[1000];
scanf("%d", &couple);
//scanf("%s", &M[0]); //为什么这里用%s才能保证输入的数据赋值给M[0]
//scanf()用%s读入字符串时,它会把空格,换行符等略过。
scanf(" %c", &M[0]); //这里不是用%c占位符会出错,而是前面scanf("%d", &couple);执行完后,
//scanf("%c", &M[0]);//一个换行符'\n'残留在输入缓冲区中,到这句用%c读入时,把它作为一个
//字符读入了。所以这句在"%c"这里加入一个空格:" %c" ,就可以解决这个
//问题。
printf("%c\n", M[0]);
return 0;
}