题解 | 复读机
复读机
https://www.nowcoder.com/practice/9d381551b6ab40c4b5c3c8d60fe4066e
#include <stdio.h>
int main() {
int a;
long long b;
double c;
char d, e[10000];
scanf("%d",&a);
scanf("%lld",&b);
scanf("%lf",&c);
//先输出abc:scanf读取字符/字符串时,会 “吃掉” 输入缓冲区里残留的换行符\n,导致读取逻辑错乱,最终a输出为0(变量未正确赋值,默认值为0)。
printf("%d\n",a);
printf("%lld\n",b);
printf("%.1f\n",c);
while(getchar() != '\n'); //读取字符串前清楚缓冲区
scanf("%s",&d);
while(getchar() != '\n');
scanf("%1000s",&e);
printf("%c\n",d);
printf("%s\n",e);
return 0;
}

查看5道真题和解析