- int a;
- float b;
- float c;
- scanf("%2d%3f%4f",&a,&b,&c);
- printf("\na=%d,b=%e,c=%f\n",a ,b,c);
复制代码
代码里边很乱让人不舒服,拷贝过来全是报错,警告,就私自修改了一下。不知道跟你原意有没有出入。%3p实在搞不懂,b属于float类型,所以改为%3f.
注意一下格式:如果scanf中%d是连着写的如“%d%d%d”,在输入数据是,数据之间不可以加逗号,只能是空格或tab键或者回车键——“2 3 4”/“2(按tab)3(按tab)4(按tab)”。若是“%d,%d,%d”,则在输入数据时需要加“,”——“2,3,4”.
在"%"与各格式符之间加入一个整数,表示只可以读取操作中的最大位数。scanf("%2d",&a),这样的话即使你输入的是12345678,打印结果只是12.
把你说的98 765 43210l可以分为三段来看 ,根据打印类型来看输出的结果是a=98,b=7.650000e+02(%e这个是按10得n次方格式输出的),c=4321.000000。
希望可以帮到你:handshake
|