精华内容
下载资源
问答
  • 以指数形式输出实数
    2022-01-22 14:25:16

    格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。不同类型的数据用不同的格式字符。
    格式字符有d,o,x,u,c,s,f,e,g等。

    %d整型输出,%ld长整型输出,

    %o以八进制数形式输出整数,

    %x以十六进制数形式输出整数,

    %u以十进制数输出unsigned型数据(无符号数)。

    %c用来输出一个字符,

    %s用来输出一个字符串,

    %f用来输出实数,以小数形式输出,(备注:浮点数是不能定义如的精度的,所以“%6.2f”这种写法是“错误的”!!!)

    %e以指数形式输出实数,

    %g根据大小自动选f格式或e格式,且不输出无意义的零。

    scanf(控制字符,地址列表)
    格式字符的含义同printf函数,地址列表是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。如scanf("%d%c%s",&a,&b,str);

    更多相关内容
  • C语言格式化输出

    千次阅读 2021-05-22 17:43:03
    printf()格式化输出详解本文来 自:http://www.kuqin.com/language/20080420/7060.htmlprintf的...②-:有-表示左对齐输出,如省略表示右对齐输出。③0:有0表示指定空位填0,如省略表示指定空位不填。④m.n:m指域宽...

    printf()格式化输出详解

    本文来 自:

    http://www.kuqin.com/language/20080420/7060.html

    printf的格式控制的完整格式:

    % - 0 m.n l或h 格式字符

    下面对组成格式说明的各项加以说明:

    ①%:表示格式说明的起始符号,不可缺少。

    ②-:有-表示左对齐输出,如省略表示右对齐输出。

    ③0:有0表示指定空位填0,如省略表示指定空位不填。

    ④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。对数值型的来说,未指定n时,隐含的精度为 n=6位。

    ⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。

    ---------------------------------------

    格式字符

    格式字符用以指定输出项的数据类型和输出格式。

    ①d格式:用来输出十进制整数。有以下几种用法:

    %d:按整型数据的实际长度输出。

    %md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。

    %ld:输出长整型数据。

    ②o格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以指定字段宽度用“%mo”格式输出。

    例:

    main()

    { int a = -1;

    printf("%d, %o", a, a);

    }

    运行结果:-1,177777

    程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为(177777)8。

    ③x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段宽度用"%mx"格式输出。

    ④u格式:以无符号十进制形式输出整数。对长整型可以用"%lu"格式输出。同样也可以指定字段宽度用“%mu”格式输出。

    ⑤c格式:输出一个字符。

    ⑥s格式:用来输出一个串。有几中用法

    %s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。

    %ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。

    %-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。

    %m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格,注意:如果 n未指定,默认为0。

    %-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出,注意:如果n未 指定,默认为0。

    如果是sprintf(desc, "%m.ns", sour); 如果desc空间够的话,会在%m.ns 串 的结尾自动补null字符,不同于strncpy。

    例如 :sprintf(desc, "%.3s", "123456"); desc如果空间>=4字节的话,第4个字节将是null字符。

    ⑦f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:

    %f:不指定宽度,整数部分全部输出并输出6位小数。

    %m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。

    %-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。

    ⑧e格式:以指数形式输出实数。可用以下形式:

    %e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。

    %m.ne和%-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。

    ⑨g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。

    ---------------------------------------

    关于printf函数的进一步说明:

    如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示,如:

    printf("%f%%", 1.0/3);

    输出0.333333%。

    ---------------------------------------

    对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位.

    对于双精度数,使用%lf格式符输出时,前16位是有效数字,小数6位.

    ----------------------------------------------------------------------------------------------------------------------

    printf()函数是格式输出函数,请求printf()打印变量的指令取决与变量的类型.例如,在打印整数是使用%d符号,在打印字符是 用%c 符号.这些符号被称为转换说明.因为它们指定了如何不数据转换成可显示的形式.下列列出的是ANSI C标准peintf()提供的各种转换说明.

    转换说明及作为结果的打印输出

    %a 浮点数、十六进制数字和p-记数法(C99)

    %A    浮点数、十六进制数字和p-记法(C99)

    %c    一个字符

    %d    有符号十进制整数

    %e    浮点数、e-记数法

    %E    浮点数、E-记数法

    %f    浮点数、十进制记数法

    %g    根据数值不同自动选择%f或%e.

    %G    根据数值不同自动选择%f或%e.

    %i 有符号十进制数(与%d相同)

    %o    无符号八进制整数

    %p    指针

    %s    字符串

    %u    无符号十进制整数

    %x    使用十六进制数字0f的无符号十六进制整数

    %X    使用十六进制数字0f的无符号十六进制整数

    %%    打印一个百分号

    //还有一个特殊的格式%*.* ,这两个星号的值分别由第二个和第三个参数的值指定

    printf("%.*s \n", 8, "abcdefgggggg");

    printf("%*.*f \n", 3,3, 1.25456f);

    使用printf ()函数

    printf()的基本形式: printf("格式控制字符串",变量列表);

    #include

    int main()

    {

    //for int

    int i=30122121;

    long i2=309095024l;

    short i3=30;

    unsigned i4=2123453;

    printf("%d,%o,%x,%X,%ld,%hd,%u\n",i,i,i,i,i2,i3,i4);//如果是:%l,%h,则输不出结果

    printf("%d,%ld\n",i,i2);//试验不出%ld和%d之间的差 别,因为long是4bytes

    printf("%hd,%hd\n\n\n",i,i3);//试验了%hd和%d之间的差别,因为short是2bytes

    //for string and char

    char ch1='d';

    unsigned char ch2=160;

    char *str="Hello everyone!";

    printf("%c,%u,%s\n\n\n",ch1,ch2,str);//unsigned char超过128的没有字符对应

    //for float and double,unsigned and signed can not be used with double and float

    float fl=2.566545445F;//or 2.566545445f

    double dl=265.5651445;

    long double dl2=2.5654441454;

    //%g没有e格式,默认6位包括小数点前 面的数,

    //%f没有e格式,默认6位仅只小数点后面包含6位

    //%e采用e格式,默认6位为转化后的小数点后面的6位

    printf("%f,%e,%g,%.7f\n",fl,dl,dl,dl);

    printf("%f,%E,%G,%f\n",fl,dl,dl,dl);//%F is wrong

    printf("%.8f,%.10e\n",fl,dl);

    printf("%.8e,%.10f\n\n\n",fl,dl);

    //for point

    int *iP=&i;

    char *iP1=new char;

    void *iP2;//dangerous!

    printf("%p,%p,%p\n\n\n",iP,iP1,iP2);

    //其他知识:负号,表示左对齐(默认是右对齐);%6.3,6表示宽度,3表示精度

    char *s="Hello world!";

    printf(":%s: \n:%10s: \n:%.10s: \n:%-10s: \n:%.15s: \n:%-15s: \n:%15.10s: \n:%-15.10s:\n\n\n",

    s,s,s,s,s,s,s,s);

    double ddd=563.908556444;

    printf(":%g: \n:%10g: \n:%.10g: \n:%-10g: \n:%.15g: \n:%-15g: \n:%15.10g: \n:%-15.10g:\n\n\n",

    ddd,ddd,ddd,ddd,ddd,ddd,ddd,ddd);

    //还有一个特殊的格式%*.* ,这两个星号的值分别由第二个和第三个参数的值指定

    printf("%.*s \n", 8, "abcdefgggggg");

    printf("%*.*f \n", 3,3, 1.25456f);

    return 0;

    }

    展开全文
  • 如果数据的位数小于m,则左端补空格,若大于m,则按实际位数输出。 3、%0md 用这种格式时,左端用0来代替空格 4、%-md m为指定的输出值的宽度。如果数据的位数小于m,则右端补空格,若大于m,则按实际位数输出 5...

    C语言的输入输出可以指定需要的格式,选择合适的格式保证数据完整性

    一、常用的输出格式对照表

    1. %d格式:用来输出十进制整数,有以下几种用法:

    1、%d 按整型数据的实际长度输出。
    2、%md m为指定的输出值的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
    3、%0md 用这种格式时,左端用0来代替空格
    4、%-md m为指定的输出值的宽度。如果数据的位数小于m,则右端补以空格,若大于m,则按实际位数输出
    5、%ld 输出长整型数据。

    输出语句含义输出结果
    printf("%6d\n",k);k的值有4列小于6列,在值的左边补2列空格;如果k的值为12则输出为□□□□12□□1234
    printf("%2d\n",k);k的值有4列大于2列,不补空格原样输出1234
    printf("%06d\n",k);空格用0替代001234
    printf("%.6d\n",k);空格用0替代001234
    printf("%-6d\n",k);右补空格1234□□

    2. f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:

    1、%f 不指定宽度,整数部分全部输出并输出6位小数。
    2、%m.nf 输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。
    3、%-m.nf 输出共占m列,其中有n位小数,如数值宽度小于m右端补空格。

    输出语句含义输出结果
    printf("%12f\n",f);输出的宽度为12列,f的值有7列,再加上输出时补的3个0共有10列,小于12列则在值的左边补2列空格□□123.456000
    printf("%12.6f\n",f);输出的宽度为12列其中小数要占6列,f的值有7列,再加上输出时补的3个0共有10列,小于12列则在值的左边补2列空格□□123.456000
    printf("%2.6f\n",f);输出的宽度为2列其中小数要占6列,f的值有7列,再加上输出时补的3个0共有10列,大于2列则输出时在值的左边不补空格,原样输出123.456000
    printf("%.6f\n",f);小数占6列,不够补0补够6列,值的左边不补空格 ,可以理解为输出的宽度为0列,其中小数占6列。123.456000
    printf("%12.2f\n",f);输出的宽度12列其中小数占2列;f的值共有7列,小数位有3列大于限定的2列则小数位只取2列并对第3位进行四舍五入;那么要输出的值就是123.46,总宽度为6列,则在输出时值的左边就要补6个空格□□□□□□123.46
    printf("%12.0f\n",f);输出的宽度为12列其中小数为0列(就是不输出小数,注意四舍五入)□□□□□□□□□123
    printf("%.0f\n",f);不指定宽度,小数占0列(无小数输出,注意四舍五入)123
    printf("%012.6f\n",f);00123.456000
    printf("%-12.2f\n",f);左对齐右补空格123.46□□□□□□
    printf("%f%%\n",12.5);“%%”只输出一个“%”12.500000%

    3. e格式:以指数形式输出实数。有以下用法:

    1、%e 数字部分(又称尾数)输出6位小数,指数部分占5位或4位。
    2、%m.ne和%-m.ne m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度

    输出语句含义输出结果
    printf("%e\n",f);输出数据的列数大于指定的列数就不补空格了。1.234560e+002
    printf("%13e\n",f) 1.234560e+002
    printf("%13.8e\n",f);1.23456000e+002
    printf("%3.8e\n",f);1.23456000e+002
    printf("%.8e\n",f);1.23456000e+002
    printf("%13.2e\n",f);总宽度小于13列左端补空格,只有2位小数部分□□□□1.23e+002
    printf("%13.0e\n",f);没有小数部分□□□□□□□1e+002
    printf("%.0e\n",f); 1e+002
    printf("%013.2e\n",f);空格用0替换00001.23e+002
    printf("%-13.2e\n",f);1.23e+002□□□□

    4. g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零

    输出语句含义输出结果
    printf("%g\n",f);无宽度控制123.456
    printf("%5g\n",f);f值的宽度大于指定的宽度,原样输出123.456
    printf("%10g\n",f);f值的宽度小于指定的宽度,左端要补空格□□□123.456
    printf("%g\n",123.456789);使用%g格式符输出时,仅前7位是有效数字(从第一位非0的数字开始算,7位为有效数字)123.457

    5. %s格式:用来输出一个串。用法如下:

    1、%s:例如:printf("%s", “CHINA”)输出"CHINA"字符串(不包括双引号)。
    2、%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。
    3、%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
    4、%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
    5、%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。

    输出语句含义输出结果
    printf("%s\n",“abedefg”);abedefg
    printf("%10s\n",“abedefg”);□□□abedefg
    printf("%5s\n",“abedefg”);实际输出的列数大于5列就原样输出abedefg
    printf("%.5s\n",“abedefg”);只输出5列abcde

    介绍了这么多的输出格式,下面用具体的程序输出体验一下

    二、常用的输出格式程序实例

    #include<stdio.h>
    
    int main() {
    	int a, b;
    	float c,d;
    	int e,f;
    	unsigned int u,v;
    	char c1,c2;
    	scanf("%d,%d",&a,&b);
    	scanf("%f,%f",&c,&d);
    	scanf("%d,%d",&e,&f);
    	scanf("%o,%o",&u,&v);
    	scanf("%c,%c",&c1,&c2);
    	printf("\n");
    	printf("a=%7d,b=%7d\n",a,b);
    	printf("c=%10.2f,b=%10.2f\n",c,d);
    	printf("e=%17d,f=%17d\n",e, f);
    	printf("u=%o,v=%o\n",u,v);
    	printf("c1=%c,c2=%c\n",c1,c2);
    
    	return 0;
    }
    

    可以自己尝试编译运行一下 ^ o ^,也可以使用下面的测试数据跑一下

    • 对应每一行的输入:

    123,456
    17.6,1837.65
    2147483640,21474836470
    62000,58765
    a,b

    • 这里是我的测试结果(一定要注意逗号的输入):
      在这里插入图片描述
    细心的小朋友就会发现这里的输入和输出好像不太一样啊!可以考虑一下这是为什么呢?

    我觉得呢,当输入到f的值时出现了错误,因为输入f的值已经超出了int类型变量的最大值;当以八进制输入v的值时出现了错误,因为v的值的第二位为8,超过了八进制的最大基数7,系统停止给v赋值,转而后面的c1和c2值都出现了问题。

    如果一定要用上面的一组数据做测试,该如何进行修改,我们可以做出下面的修改

    #include<stdio.h>
    
    int main() {
    	int a, b;
    	float c,d;
    	int e;
    	long long f;
    	/*我将f的格式定义为了long long型,这样表示的位数可以更多*/
    	unsigned int u,v;
    	char c1,c2;
    	scanf("%d,%d",&a,&b);
    	scanf("%f,%f",&c,&d);
    	scanf("%d,%lld",&e,&f);
    	/*这里的输入也需要相应的修改*/
    	scanf("%o,%d",&u,&v);
    	/*这里以10进制接收v*/
    	scanf("%c,%c",&c1,&c2);
    	printf("\n");
    	printf("a=%7d,b=%7d\n",a,b);
    	printf("c=%10.2f,b=%10.2f\n",c,d);
    	printf("e=%17d,f=%17lld\n",e, f);
    	/*这里的输出也需要相应的修改*/
    	printf("u=%o,v=%d\n",u,v);
    	printf("c1=%c,c2=%c\n",c1,c2);
    
    	return 0;
    }
    

    再一次用相同的数据测试:
    在这里插入图片描述

    这里虽然f的值可以正确显示了,并且u也以十进制接收了数据,但是c1和c2的值还是有问题,我觉得c1的值是“回车”,因为在输入完v的值后系统开始接收键盘上敲入的字符,首先敲入了回车然后是a接着是逗号,系统从回车开始接收,自动将回车赋给字符变量c1,将逗号给字符变量c2,因而不能正确显示

    如果想正确显示c1和c2,又该如何进行修改?

    我们直接在58765后面键入ab,中间不要用回车和空格
    123,456
    17.6,1837.65
    2147483640,21474836470
    62000,58765a,b

    执行结果:
    在这里插入图片描述
    这样就可以正确显示c1c2的值了

    在上面修改基础上在scanf(“%c,%c”,&c1,&c2);语句之前加一个语句:getchar();再用上述测试数据测试
    #include<stdio.h>
    
    int main() {
    	int a, b;
    	float c,d;
    	int e;
    	long long f;
    	/*我将f的格式定义为了long long型,这样表示的位数可以更多*/
    	unsigned int u,v;
    	char c1,c2;
    	scanf("%d,%d",&a,&b);
    	scanf("%f,%f",&c,&d);
    	scanf("%d,%lld",&e,&f);
    	/*这里的输入也需要相应的修改*/
    	scanf("%o,%d",&u,&v);
    	/*这里以10进制接收v*/
    	getchar();
    	scanf("%c,%c",&c1,&c2);
    	printf("\n");
    	printf("a=%7d,b=%7d\n",a,b);
    	printf("c=%10.2f,b=%10.2f\n",c,d);
    	printf("e=%17d,f=%17lld\n",e, f);
    	/*这里的输出也需要相应的修改*/
    	printf("u=%o,v=%d\n",u,v);
    	printf("c1=%c,c2=%c\n",c1,c2);
    
    	return 0;
    }
    

    我们会发现这样也可以成功输出:
    在这里插入图片描述
    输入完v的值58765后面的回车自动被getchar()接收,从而后面的c1和c2可以接收a和b。也可以先定义一个字符型变量c3,让c3去接收v后面的回车符,后面输出时不输出c3即可。

    尝试一下用字符型变量c3代替getchar();去接收v后面的回车符:

    #include<stdio.h>
    
    int main() {
    	int a, b;
    	float c,d;
    	int e;
    	long long f;
    	/*我将f的格式定义为了long long型,这样表示的位数可以更多*/
    	unsigned int u,v;
    	char c1,c2,c3;
    	/*c3不要忘了定义*/
    	scanf("%d,%d",&a,&b);
    	scanf("%f,%f",&c,&d);
    	scanf("%d,%lld",&e,&f);
    	/*这里的输入也需要相应的修改*/
    	scanf("%o,%d",&u,&v);
    	/*这里以10进制接收v*/
    	scanf("%c%c,%c",&c3,&c1,&c2);
    	printf("\n");
    	printf("a=%7d,b=%7d\n",a,b);
    	printf("c=%10.2f,b=%10.2f\n",c,d);
    	printf("e=%17d,f=%17lld\n",e, f);
    	/*这里的输出也需要相应的修改*/
    	printf("u=%o,v=%d\n",u,v);
    	printf("c1=%c,c2=%c\n",c1,c2);
    
    	return 0;
    }
    

    结果也是和上面的一样,这里要注意

    scanf("%c%c,%c",&c3,&c1,&c2);
    

    前面的%c后面没有逗号分隔,实现c3接收回车后直接用c1接收a

    三、配合++运算符的输入输出

    1.这里是个小程序代码:

    #include<stdio.h>
    
    int main() {
    	int i,j,m,n;
    	i = 8;
    	j = 10;
    	m = ++j;
    	n = j++;
    	printf("%d,%d,%d,%d",i,j,m,n);
    
    	return 0;
    }
    

    运行后可以看见输出:8,12,11,11
    在这里插入图片描述
    这里简单解释一下:
    首先i的值没有改变,即8,直接输出
    进行到m=++j时,j首先自增+1,变成11后赋值给m,所以m=11
    进行到n=j++时,j先将11赋值给n,然后自增+1,变成12
    最终输出8,12,11,11

    2.对源程序修改一下:

    #include<stdio.h>
    
    int main() {
    	int i,j,m,n;
    	i = 8;
    	j = 10;
    	m = i++;
    	/*改成i++*/
    	n = ++j;
    	printf("%d,%d,%d,%d",i,j,m,n);
    
    	return 0;
    }
    

    运行后可以看见输出:9,11,8,11
    在这里插入图片描述
    进行到m=i++时,i首先将8赋值给m,m变成8,然后i自增+1变成9
    进行到n=++j时,j首先自增+1,变成11,然后将11赋值给n,n=11
    最终输出9,11,8,11

    3.如果将对i和j的操作放到输出语句里面会怎么样呢?

    #include<stdio.h>
    
    int main() {
    	int i,j;
    	i = 8;
    	j = 10;
    	printf("%d,%d",i++,j++);
    
    	return 0;
    }
    

    运行后可以看见输出:8,10
    在这里插入图片描述
    输出语句从右边开始读取j++,即先将j的值10输出,然后j自增+1
    然后读取i++,即先将i的值8输出,然后自增+1

    4.在3的基础上稍作修改:

    #include<stdio.h>
    
    int main() {
    	int i,j;
    	i = 8;
    	j = 10;
    	printf("%d,%d",++i,++j);
    
    	return 0;
    }
    

    运行后可以看见输出:9,11
    在这里插入图片描述
    输出语句从右边开始读取++j,即先j自增+1变成11,接着将j的值11输出
    然后读取++i,即先i自增+1变成9,接着将i的值9输出

    5.在3和4的基础上再稍作修改:

    #include<stdio.h>
    
    int main() {
    	int i,j;
    	i = 8;
    	j = 10;
    	printf("%d,%d,%d,%d",i,j,i++,j++);
    
    	return 0;
    }
    

    运行后可以看见输出:9,11,8,10
    在这里插入图片描述
    首先从右边开始读取j++,j=10,将10输出,接着自增+1,变成11
    然后读取i++,i=8,将8输出,接着自增+1,变成9
    然后分别输出j和i,此时的i和j都已经自增+1了
    最终输出9,11,8,10

    相信通过这么多的变化,一定清楚了输入输出以及++运算符的作用

    四、输入输出的编程应用

    1.写一个程序以实现输出公式

    在这里插入图片描述

    #include <stdio.h>
    #include <math.h>
    
    int main()
    {
        int x;
        double r;
        /*一定要将r定义为双精度型,保证可以精确显示*/
        printf("please input x(1-30000):");
        scanf("%d",&x);
        if(x>=1&&x<=30000)
            {r=sqrt((9*x-7)/5);
            printf("the result of r is: %lf\n",r);}
        else
            printf("您输入的x值不符合要求,请重新运行输入x的值");
            
        return 0;
    }
    

    一定要将r定义为双精度型,保证可以精确显示,当我们输入500时,可以成功计算出结果:
    在这里插入图片描述
    当输入数字不在1-30000之间会提示输入错误

    2.写一个程序,程序的功能是实现给定单价和数量,输出金额

    定义两个双精度变量price和amount
    如:price被赋予8.5;amount 被赋予12.0
    输出 : money is XXX.XXX!
    提示: 输出的格式符用%lf

    #include <stdio.h>
    
    int main()
    {
        double price,amount,money;
        printf("请输入单价price和数量amount:\n");
        scanf("%lf %lf",&price,&amount);
        money=price*amount;
        printf("money is %lf!\n",money);
    
        return 0;
    }
    
    

    price被赋予8.5;amount 被赋予12.0,执行结果:
    在这里插入图片描述
    还可以对程序进一步改进完善,比如对输入的控制提示等等。。

    展开全文
  • C语言 | printf输出函数

    2021-03-19 09:07:25
    输出计算机主机为主体而言的,从计算机向输出设备输出数据称为输出,C语言本身不包含输出语句,如果不加头文件,下述代码就会报错。 //#include<stdio.h>//头文件 int main()//主函数 程序的入口 { ...

    C语言输出的概念

    输出是以计算机主机为主体而言的,从计算机向输出设备输出数据称为输出,C语言本身不包含输出语句,如果不加头文件,下述代码就会报错。

    //#include<stdio.h>//头文件 
    int main()//主函数 程序的入口 
    {
       printf("Hello xiaolin!\n");// \n是换行的意思 
       return 0;
    }
    

    编译结果:

    D:\闫小林\讲义资料\1-100\测试.cpp In function 'int main()':
    D:\闫小林\讲义资料\1-100\测试.cpp [Error] 'printf' was not declared in this scope
    

    C语言printf用法

    1、一般格式

    printf(格式控制,输出表列)

    格式控制

    格式控制是用双引号括起来的一个字符串,称“转换控制字符串”,简称“格式字符串”,包含:

    格式声明:由%和格式字符组成,如%d、%f。

    普通字符:即需要在输出时原样输出的字符。

    输出表列

    输出表列是程序需要输出的一些数据,可以是常量、变量或表达式。

    C语言格式字符

    1、d格式符

    用来输出一个有符号的十进制整数。

    2、c格式符

    用来输出一个字符

    3、s格式符

    用来输出一个字符串

    4、f格式符

    用来输出实数,以小数形式输出,有两种用法:

    ①基本型,用%f,不指定输出数据的长度,由系统根据数据的实际情况决定数据所占的列数。

    ②指定数据宽度和小数位数,用%m.nf,m代表输出的数据占m行,n代表其中包含n位小数。

    ③输出的数据向左对齐,用%-m.nf,作用和②差不多,就是数据要向左靠,右端补空格。

    5、e格式符

    用来指定以指数形式输出实数。

    以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~

    100道源码案例请去公众号:C语言入门到精通

    展开全文
  • C语言输出格式总结

    千次阅读 2020-12-20 12:40:24
    C语言输出格式总结C语言输出格式总结2008年11月01日星期六04:23P.M.1一般格式printf(格式控制,输出表列)例如:printf("i=%d,ch=%c\n",i,ch);说明:(1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”...
  • 转换说明符 %a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99) %c 字符 %d 有符号十进制整数 %f 浮点数(包括float和doulbe) %e(%E) 浮点数指数输出[e-(E-)记数法] %g(%G) 浮点数...
  • C++:用指数表示一个实数

    千次阅读 2019-09-28 09:13:13
    格式: 十进制的浮点型数 | 基本整型数1 E 基本整型数2 注意: (1)|表示的是或者,可以是十进制的浮点数也...(4)当指数形式表示一个实数的时候,整数部分和小数部分可以省略其中一个,但是不能全部省略。省略...
  • C语言学习笔记之基础篇_Format格式完全攻略(格式化字符)一、 格式输出以printf(fomat,date)为例1、 输出十进制整数u %d:按整数的实际长度输出。u %md:m指的是输出的最小长度,长度小于m的用空格替代,长度大于m的...
  • C语言 单精度和双精度实数输出

    万次阅读 多人点赞 2019-02-04 10:50:26
    C语言 单精度和双精度实数输出 有意义数字和无意义数字的演示
  • C程序设计(第四版) 谭浩强 著 1:在该书P50浮点型数据中这样写道:在...一个实数只有一个规范化的指数形式,在程序以指数形式输出一个实数时,必然规范化的指数形式输出,如:0.314159e001。 接着又讲到:编...
  • 的和 Input 无 Output 1到20的阶乘之和(以指数形式输出实数) Sample Input 无 Sample Output 2.561327e+18 二、源码实现 #include int main(){ float n,s=0,t=1; for(n=1;n;n++){ t *= n; s += t; } printf...
  • e,E 以指数形式输出单、双精度实数 g,G %f或%e中较短的输出宽度输出单、双精度实数 c 输出单个字符 s 输出字符串 #include int main(void){ int a=15; long float b=123.1234567; double c=12345678.1234567; char...
  • 字符 ′A′ 的ASCII码为65,在内存中的存放形式如下:01000001 由于在内存中字符ASCII码存放,它的存储形式和整数的存储形式类似,所以C语言中字符型数据与整型数据之间可以通用,一个字符能用字符的形式输出,...
  • svreal是一个SystemVerilog库,可以轻松地在SystemVerilog中可综合的方式执行实数运算。 定点和浮点表示形式均受支持。 默认情况下,使用定点格式。 指数和对齐方式的细节会自动处理,因此用户可以自由自定义...
  • C/C++中各进制转换和输出形式(详细)

    千次阅读 2021-04-02 18:02:32
    b,0开头为8进制,045,021。 c.,0b开头为2进制,0b11101101。 d,0x开头为16进制,0x21458adf。 2.在C语言中 printf函数格式字符:常用的有以下几种格式字符: %d格式字符。用来输出十进制整数。有以下几种...
  • C语言输出格式总结要点C语言输出格式总结C语言输出格式总结2008年11月01日星期六 04:23 P.M.1 一般格式???printf(格式控制,输出表列)???例如:printf("i=%d,ch=%c\n",i,ch);???说明:???(1)“格式控制”是用双撇号括...
  • c语言格式输入与输出

    千次阅读 2021-05-20 14:30:06
    putchar()函数和getchar()函数只能输出和输入一个字符,若要同时输入多种数据类型的数据,则可以使用格式输入输出函数。这种函数不但能输入输出各种类型的数据,而且还可以控制数据输入输出时每个数据的输入输出格式...
  • printf( )使用形式:printf("格式控制字符串",输出项列表);格式字符("%"引导):(1)d格式字符:用来输出十进制整数。%d,按整型数据的实际长度输出。%md,m为指定的输出字段的宽度。若实际位数小于m,则左端补空格...
  • 实数格式识别

    2012-03-18 23:08:49
    输出的末尾均要一个回车符作为结束。 【输入样例1】 +1.23 【输出样例1】 Format1 【输入样例2】 -5.1.1 【输出样例2】 Wrong 【输入样例3】 -5.1E-2 【输出样例3】 ...
  • format 参数输出的格式,定义格式为:%[flags][width][.perc] [F|N|h|l]type规定数据输出方式,具体如下:1.type 含义如下:d 有符号10进制整数i 有符号10进制整数o 有符号8进制整数u 无符号10进制整数x 无符号的16...
  • C语言输入输出格式符

    千次阅读 2020-08-22 21:59:29
    C语言输入输出格式符 printf函数(格式输出函数) 1.一般格式 printf(格式控制,输出表列) 例如:printf(“i=%d,ch=%c\n”,i,ch); 说明: ...(3)printf函数的一般形式可以表示为 printf(参数1,参数2,…
  •  5.%e 指定以指数形式输出实数 如果不指定输出数据所占的宽度和数字部分和小数位数 编译系统会自动给出数字部分的小数位数为6位,指数部分占5列 数值按照标准化指数形式输出(即小数点前必须有且只有一位非零数字)...
  • printf 格式输出

    千次阅读 2021-05-25 06:04:29
    } 输出结果: 123.455994□□123.455994□□□□□□123.46□□123.46□□123.468、e格式符:以指数形式输出实数。%e 按规范化指数形式输出实数,系统自动给出6位小数,指数部分占5位 %m.ne 与前面的叙述相同 %-m....
  • c语言printf()输出格式大全

    千次阅读 2021-05-20 03:39:13
    1.转换说明符%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)%c 字符%d 有符号十进制整数%f 浮点数(包括float和doulbe)%e(%E) 浮点数指数输出[e-(E-)记数法]%g(%G) 浮点数不显无意义的零"0"%i 有符号十进制整数(与...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,781
精华内容 5,512
关键字:

以指数形式输出实数

友情链接: Desktop.zip