1. 关于“scanf”输入字符时易错点
<1>scanf("%d\n")后需要再输入字符或字符串时,“\n”不能少;
或可用getchar来吸收换行。
#include<stdio.h> int main() { int n,i; char c; double h,s; scanf("%d\n", &n); //'\n'表示忽略所有的空白字符,输入非空白字符结束输入,不加'\n'会使c接收换行符 for(i=0;i<n;i++) { scanf("\n%c%lf",&c,&h); s=0; if(c=='M') { s=h/1.09; } else { s=h*1.09; } printf("%.2lf\n",s); } return 0; }
<2>scanf格式化输入,可为字符串数组重新赋值。
#include<stdio.h> #include<string.h> int main() { char name[15]; while(scanf("%s",name)&&strcmp(name,".")!=0) printf("%s\n",name); return 0; }