我编写了一个用于对人名进行排序的程序,我要求用户给出他想要的人数,我使用下面给定的行存储它并且它工作正常,但是,我不明白的确切工作原理它。有谁能解释清楚吗?
scanf("%d%*c",&n);
Run Code Online (Sandbox Code Playgroud) #include <stdio.h>
int main()
{
int i;
long int l;
long long int ll;
char a;
float F;
double D;
scanf("%i%li%lli%c%f%lf",&i,&l,&ll,&a,&F,&D);
printf("%i\n%li\n%lli\n%c\n%f\n%lf\n",i,l,ll,a,F,D);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试在上面的程序中打印a,F和D的值时,它打印'h'表示'char',而0.000000和0.000000表示浮点数,每次都加倍.
input: 3
444
12345678912345
a
334.23
14049.30493
output:3
444
12345678912345
0.000000
-0.000000
Run Code Online (Sandbox Code Playgroud)