int a;
scanf("%d",&a);
printf("%f\n",a);
或者:
float a;
scanf("%f",&a);
printf("%d\n",a);
输出的都是0,不是说各种类型的数据可以相互转换的嘛,为什么这里会出错呢? 难道数据类型之间的转换,不能通过格式符直接进行转换吗?
C语言格式说明符问题
c语言中的格式说明符,以%开头,后面接上字母,如%d表示整数,%f表示浮点数,%s表示字符串,%c表示字符等等!扩展:格式说明符详细说明 ① d格式:用来输出十进制整数。有以下几种用法:d:按整型数据十进制的实际长度输出。md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于...
C语言格式说明符问题
printf 中可以用 * 指定字符宽度 char xing[10]="Chen";char ming[10]="Palmer";printf("%s %s\\n",ming,xing);printf("%*s%d %*s%d",strlen(ming)-1," ",strlen(ming),strlen(xing)-1," ",strlen(xing));第二个printf中 strlen(ming)-1 指定输入空格的宽度为 名字长度-1 " "...
C语言printf附加格式字符问题,求详细解释
其实此题主要考察scanf的附加格式字符作用。scanf中%2d表示只接收两位整数,所以a=98;%3f表示只接收3位浮点数,所以b=765;%4f表示只接收4位浮点数,所以c=4321。printf的附加格式字符只是对相应的变量增加了a=、b=和c=及各输出变量间加了个逗号,且要注意浮点数默认小数是6位,所以最后输出是:a...
求教C语言g格式符的问题
因为你的数有效数字位数较多,%e %g 按默认长度输出,%g 有效数字位数6位,%e是小数下6位。你可以根据需要 指定场宽,或小数位数 , 例如 %14g %.8g
C语言中,格式控制字符问题%d,%hd,%ld等的问题
用做printf的时候,会根据格式字符串做转换 比如 printf(“%d”,a); 等效于 printf(“%d”,(int)a);这个是可以混用的,用错了关系也不大,除非很极端的情况,输出都不会错。但是scanf中不能用错。 比如说 short a;scanf("%d", &a);a是short只有2个字节的空间, 用%d scanf会写四个...
C语言关于格式符f的使用的一道题
printf("%f,%12f,%12.2f“,a,a,a);12.2f意思是占12字符,保留两位小数,为什么是123.456001因为编译器的缘故了。一般f是小数点6位,1就是编译器的关系(有些会是0).但保留两位时,编译器自动将后面的位四舍五入就是46了
关于C语言的整型和浮点型之间的强制转换与输出格式符问题
1:这里涉及到函数进栈时的,不定参数转换问题,float,double类型的,进栈的时候都是按double计算的,8个字节;所以不管参数里面是%f,还是%lf都是按8个字节取的,然后强制转换为f;\/\/第二次的情况 int a=3;double b=1;b=1\/a;printf("%-15d%-15d%-15f%-15f",1.0\/a,b,1.0\/a,b);...
C语言中的格式符%-06d
负号“-”的意思是向左对齐。“06”的意思是输出的宽度为6.-06d :输出向左对齐 如果输入字符大于6个,则原样输出,若小于6个,则右补空格。
C语言程序编写“输入两个整数,分别求他们的和、差、积、商、余数,并...
前面声明变量的时候类型是浮点型,所以格式符应该使用%f而不是%d,%d是整型。改为:include "stdio.h"void main(){ float x,y,a,b,c,d;scanf("%f%f,&x,&y);printf("%f%f%f",x+y,x-y,x*y,x\/y,x%d);}
c语言的格式控制符
1.d格式符,用来输出十进制整数.⑴%d,按整型数据的实际长度输出.⑵%md,m为指定的输出字段的宽度,数据位数小于m,左边补空格,若大于m,按实际长度输出 ⑶%ld,输出长整型数据(long)2.o格式符,以八进制输出整数(不带符号,他将符号位也作为八进制数的一部分了)⑴%o,参考%d的解释.⑵%lo,参考%ld的解释...