精华内容
下载资源
问答
  • Problem Link:http://139.129.36.234/problem.php?id=1102 1102: 整数幂 时间限制: 1 Sec 内存限制: 128 MB 提交: 5 解决: 2 ...输入3个整数,输出它们的1次幂、2次幂和3次幂。...输出 ...输出


    Problem Link:http://139.129.36.234/problem.php?id=1102


    1102: 整数幂

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 5  解决: 2
    [提交][状态][讨论版]

    题目描述

    输入3个整数,输出它们的1次幂、2次幂和3次幂。

    输入

    输入3整数,用空格隔开

    输出

    输出3行,每行3个整数,分别是它们的1次幂、2次幂和3次幂,每个整数占9列,不足9列左对齐

    样例输入

    1 5 100
    

    样例输出

    1        1        1        
    5        25       125      
    100      10000    1000000  




    AC code:

    #include<iostream>
    #include<algorithm>
    #include<stdio.h>
    #include<map>
    #include<math.h>
    #include<string.h>
    #include<queue>
    #include<vector>
    #include<set>
    #define LL long long
    #define exp 1e-9
    #define MAXN 1000010
    
    using namespace std;
    
    int main()
    {
    //	freopen("D:\\in.txt","r",stdin);
    	int n,m,k;
    	scanf("%d%d%d",&m,&n,&k);
    	printf("%-9d%-9d%-9d\n",m,m*m,m*m*m);
    	printf("%-9d%-9d%-9d\n",n,n*n,n*n*n);
    	printf("%-9d%-9d%-9d\n",k,k*k,k*k*k);
    	return 0;
    }
    



    输出格式解析:

    1 %d为整型的输出格式标识;
    2 -代表数据左对齐,如不加则默认右对齐;
    3 9表示输出占9位,不足部分补空格。


    展开全文
  • C语言学习实践摘要本文将从C语言变量的本质,不同类型变量在内存中的存储方式,类型强制转换,格式输出4个方面阐述C语言初学阶段的一些问题。关键词:内存存储,类型强制转换,反汇编1. 变量变量来源于数学,是...

    C语言学习实践

    摘要

    本文将从C语言变量的本质,不同类型变量在内存中的存储方式,类型强制转换,格式输出4个方面阐述C语言初学阶段的一些问题。

    关键词:内存存储,类型强制转换,反汇编

    1. 变量

    变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。在诸如C语言等高级语言中,变量的使用屏蔽了数据的底层细节,使得高级语言程序员不必像汇编程序员那样关心数据与硬件之间的关系。为了探究C语言中变量在内存中的存储形式,可以借助反汇编查看汇编语言以及内存数据。

    2. 变量在内存中的存储形式

    在内存中,无论哪种数据类型的数据,都是以相应长度的二进制码存取。从内存取数据是,如果不按照定义数据类型的方式取数据,所取数据就会错误。

    2.1   用反汇编查看变量内存数据

    (1)   实验代码如下。在赋值部分打点后调试,转入反汇编。

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

    (2)   在监视窗口查看变量的内存地址,并在内存窗口中查看数据。

    0818b9ca8b590ca3270a3433284dd417.png

    整形变量_4ByteData的数据在以内存地址0x0023FA58起始的四个Byte中存放:【注意】 Intel处理器是小端机,数据高位在高地址,地位在地址。所存数据:4Bytes的十六进制数 0x12345678

    0818b9ca8b590ca3270a3433284dd417.png

    单精度浮点型变量fl的数据在内存中的存储:

    0818b9ca8b590ca3270a3433284dd417.png

    双精度浮点型变量df的数据在内存中的存储:

    0818b9ca8b590ca3270a3433284dd417.png

    字符型变量ch的数据在内存中存储;

    0818b9ca8b590ca3270a3433284dd417.png

    结论:

    (1)   局部变量存储在函数栈中,且该栈向低地址生长,所以先定义的局部变

    量在较高内存地址(比如_4ByteData在0x0023FA58,ch在0x0023FA33),并且局部变量之间并非紧密排布,而是由8个Byte 的cc数据隔开。变量周围塞些CCCCCCCC,这可能是编译器提供的一种保护机制,越界了好出断言。通过网上查找资料,这是VC在Debug时给变量留出空间,用来检查stack overflow。

    用release调试,就不会有多余的cc。(但是注意这里char型变量与之前的局部变量之间仍有数据,我猜测这里是应为有变量对齐的缘故,char型变量也占了4byte,只不过多余的3byte由其他数据填充。)

    0818b9ca8b590ca3270a3433284dd417.png

    (2)   通过观察不同类型的变量在内存中的存储情况,可以发现:

    在32位机器,VS2010 IDE中,一个int型数据占4B,float型变量占4B,double型变量占8B,char型占1B。

    2.2    IEEE754 单精度数的格式

    单精度浮点数占据4个字节,4个字节的分配如下:

    (a)第一位为符号位,0表示正,1表示负;

    (b)第2~9位为阶码,采用移码表示;

    (c)第10~32位为尾数,采用原码表示。

    给定32位串,如何转换成十进制数:

    假设内存中存在32位串:00 00 00 3f,因为INTELCPU采用little endian存储方式,所以其真实的值为:

    0x 3f 00 00 00。将其写成二进制形式:

    (1)第一步,化为二进制

    0 01111110 0000000 00000000 00000000

    (2)第二步

    该浮点数为正数,阶码 01111110,移码表示(126-127) = -1

    尾数 0000000 00000000 00000000

    因为在IEEE754中,单精度浮点数有规格化处理,所以其真正尾数部分为

    1.0000000 00000000 00000000,其中‘.’为小数点

    (3)   第三步

    根据公式写出实际数值大小

    0.10000000 00000000 0000000 化为二进制:0.5

    2.3    IEEE754 双精度数的格式

    长实数也称双精度数符号位1位,阶码11位,尾数52位

    给定32位串,如何转换成十进制数:

    假设内存中存在64位串:00 00 00 0000 00 e0 3f,因为INTEL CPU采用littleendian存储方式,所以其真实的值为:       0x 3f e0 00 00 00 00 00 00。将其写成二进制形式:

    (1)第一步

    0 01111111110 0000 00000000 00000000 00000000 00000000 0000000000000000

    (2)第二步

    该浮点数为正数,阶码 01111111110,移码表示(1022-1023) = -1尾数 0

    因为在IEEE754中,单精度浮点数有规格化处理,所以其真正尾数部分为

    1.0,其中‘.’为小数点

    (3) 第三步

    根据公式写出实际数值大小

    0.10 化为二进制:0.5

    3. 格式化输出

    3.1 printf函数调用的一般形式

    printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用 printf 函数之前必须包含stdio.h文件。printf函数调用的一般形式为:printf(“格式控制字符串”, 输出表列)。

    其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如:

    “%d”表示按十进制整型输出;

    “%ld”表示按十进制长整型输出;

    “%c”表示按字符型输出等

    非格式字符串原样输出,在显示中起提示作用。输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。

    3.2 类型不对应下的格式输出

    _4ByteData = 0x12345678;  //Hexadecimal:0x12345678对应Decimal:305419896

    fl = 0.5;

    df = 0.5;

    ch = 65;

    printf("%d\n",_4ByteData);

    printf("%c\n",_4ByteData);

    printf("%d\n",ch);

    printf("%f\n",&_4ByteData);

    printf("%d\n",fl);

    printf("%d\n",df);

    0818b9ca8b590ca3270a3433284dd417.png

    分析:

    可以看到同样是int型变量,printf("%d\n",_4ByteData);与

    printf("%c\n",_4ByteData);其结果分别为305419896(0x12345678对应的十进制数),而后者只取了4字节数据的最低一个字节0x78,所以打印出了AISII码0x78对应的字符’x’。

    联系C语言中指针的用法,我做出假设:格式输出函数printf()根据类型字符%以及变量名,就可以根据数据首地址+读取长度的方式输出数据。

    进一步发现:

    但是对字符型变量ch使用类型字符%d输出,得到的是其ASCII码的十进制数,如果按照上述假设,会输出以ch地址起始的4B的数据(这将是一个错误数据)。

    但实验结果是正确输出了ch字符的ACSII码的十进制数。

    再对浮点数做实验:

    用类型字符%d输出单精度数,双精度数,结果均为0。

    由上文2.1可知单精度浮点变量fl(十进制0.5)在内存中占4B,机器码是

    0x00 00 00 3f(小端机)。现对整数_4ByteData赋值0x3f000000,并使用类型字符%f对该整数输出,查看结果:

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

    结果仍是0。这说明即使内存中数据存储的内容一样,但是使用类型字符%f对整型变量输出,其结果仍然不是浮点数!

    综上,原假设值得怀疑!

    4. printf()函数类型不对应下的格式输出进一步研究

    4.1用%d输出float类型数据

    float fl=0.5;如果用printf("%d",fl);输出的是0。 但float型用%d输出是否一定是0呢,答案肯定不都是0(如下图)。

    0818b9ca8b590ca3270a3433284dd417.png

    为什么 0.5 用%d输出的是0?

    分析如下:

    首先来了解下printf的输出格式,int 和 long int 都是32位的,用%d输出;float 、double都是%f输出,但 float 是32位的,double 是64位的,所以在参数传递的时候C语言统一将 float 类型数值传换为double 类型再传入 printf 函数。如果是32位整型则输出格式为%lld。

    下面来讲一下  float fl=0.5f ;printf("%d",fl)输出为0的情况:

    %d只输出低32位的数据,并将这些32位二进制以十进制数输出,编译器首先将 0.5从float类型转换为double类型,0.5在内存中的存放方式是0x3f000000,转换成double类型在内存中的数据就是这个0x3fe0000000000000,这个内存数据可以很明显看出低32位全是0,而%d则只能截取到低32位,所以这个以%d输出0.5的数值当然是 0了。如大家不相信可以用%lld 输出看看,这个%lld就很读到低64位数据,读出的结果就是0x3fe0000000000000,在屏幕上看到一个很大的十进制数。(这里用%llx显示十六进制数更直观)

    0818b9ca8b590ca3270a3433284dd417.png

    如果我一定要输出0.5在内存中的存放方法怎么办呢?

    可以用printf("%d",*(int *)&fl);这里做了一下处理,不是直接把fl传进来,把fl所在地址里的内容处理了一下,不管fl是什么类型,只对地址进行操作,利用(int *)&lf,将fl所在地址中的内容0x3f000000直接当成 int 类型传给printf,int 的类型数据不会再转成double类型了,所以输出正常,这个只是针对浮点型数据只占低32位,如果输出64位还得用%lld格式控制输出。

    如果用printf("%d",(int)fl),输出行不行?

    这个强制类型转换只针对fl的数据类型进行转换,0.5转换 int 类型是0,而上面的*(int *)&a,是对内存中的实际存储数据进行操作,蔽开数据类型这一层面,只将这个数据0x3f000000直接转成int类型输出。而(int)fl,要先看fl的类型,C语言会根据所要数据类型,对内存存储的数据进行改变,以便可以用int类型正确解析内存数据。

    如果用printf("%d",(float)fl),输出什么,输出的是0,这个只是将fl的float类型还转成float类型,还是要自动转成doube类型,传给printf函数。

    为什么float非要转成double类型呢?

    因为printf格式控制浮点型输出只有%f,所以统一按doube类型输出,不像整型有32位的%d或%ld,64位的有%lld,这就将32位整型和64位整型用不同的格式控制分开了,而%f则没有,所以printf输出的浮点数其实是统一遍历了64位内存,如果float传入printf没有进行转换,那么printf输出高32位数据将不可预知,printf输出结果也就不正确了,因此传入printf的浮点数都会被编译器隐含转成double类型。

    4.2 int类型%f格式输出

    如果定义了inta=0x3f000000;用printf("%f",a)输出的结果是多少呢?

    答案是0,至少我们看的屏幕上显示的是0.000000,实际值可不是0啊,只是我们显示的精度只能有15位小数,而实际的数据可能很小很小,0.0000....000几百个0后会有几个有效数据。

    我们分析一下:

    首先C语言把a传进printf,因为a是整型,所以不会自动转成double型数据,直接将0x3f0000000传进printf,而%f寻的是64位内存,也就是把0x000000003f000000这个内存中的数据当成浮点型输出来,那浮点型的数据是多少呢,又是怎么存储的呢?

    64位浮点数的存放方式:

    63位                 62~52位                 51~0位

    1个符号位       11个阶数                 52个尾数

    从0x000000003f000000来看:

    00000000

    1)符号位是0,表示正

    2)阶数是0,用移码表示:0-1023 = -1023,

    用指数表示:1.#*2^-1023,‘#’是代表尾数。

    3)尾数就是,0x000003f000000

    4)浮点二进制表示

    1.000000000000000000000011 1111 000000000000000000000000*2^(-1023),2^-1023次方可想而知有多小!

    这就是为什么我们的int型数据用%f输出是0.000000的原因!

    如果把0.5的双精度数对应的十六进制数赋给long long类型变量,则可以输出正确的小数:

    0818b9ca8b590ca3270a3433284dd417.png

    5. 总结:

    通过以上实验,我验证了原假设基本正确:

    格式输出函数printf()根据类型字符%以及变量名,就可以根据数据首地址+读取长度的方式输出数据。

    但是,还要注意其中的一些细节:

    (1)用%d输出float类型数据时,在参数传递的时候C语言统一将 float 类型数值传换为 double 类型再传入 printf 函数。而%d只截取低32位数据,所以得到的数字不是相应浮点数的二进制码。

    (2)int类型%f格式输出,%f寻的是64位内存,所以输出的数据可能很小(比如2^-1023),那么结果是0.

    综上,无论什么类型的数据,都只是01二进制数据。只要清楚其内存存储机制,拿到数据首址+偏移量,就能正确操作该数据!

    最后,我想说C语言非常灵活,高级程序员也要熟悉汇编语言,会使用反汇编这把“手术刀”在底层剖析程序,会有更深刻的认识!

    展开全文
  • C语言 printf 格式输出对齐补零

    千次阅读 2015-09-19 11:43:35
    C语言 printf 格式输出对齐补零 关于printf的一点总结,内容来自http://blog.sina.com.cn/s/blog_5ac88b350100auna.html 1.1 标准输入输出函数 1.1.1 格式化输入输出函数 Turbo C2.0 标准库...
    C语言 printf 格式化 输出 右对齐补零

    关于printf的一点总结,内容来自http://blog.sina.com.cn/s/blog_5ac88b350100auna.html


    1.1  标准输入输出函数


    1.1.1 格式化输入输出函数   
    Turbo C2.0 标准库提供了两个控制台格式化输入、 输出函数printf( ) 和    
    scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。    
    printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入    
    设备(键盘)上读数据。下面详细介绍这两个函数的用法。    
    一、printf()函数    
    printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出    
    信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:    
    printf("<格式化字符串>", <参量表>);    
    其中格式化字符串包括两部分内容: 一部分是正常字符,  这些字符将按原    
    样输出; 另一部分是格式化规定字符, 以"%"开始, 后跟一个或几个规定字符,    
    用来确定输出内容格式。    
    参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出    
    参数个数一样多, 各参数之间用","分开, 且顺序一一对应,  否则将会出现意想    
    不到的错误。    
    1. 格式化规定符    
    Turbo C2.0提供的格式化规定符如下:    
    ━━━━━━━━━━━━━━━━━━━━━━━━━━    
    符号  作用    
    ──────────────────────────    
    %d  十进制有符号整数    
    %u  十进制无符号整数    
    %f  浮点数    
    %s  字符串    
    %c  单个字符    
    %p  指针的值    
    %e  指数形式的浮点数    
    %x, %X  无符号以十六进制表示的整数    
    %0  无符号以八进制表示的整数    
    %g  自动选择合适的表示法    
    ━━━━━━━━━━━━━━━━━━━━━━━━━━    
    说明:    
    (1). 可以在"%"和字母之间插进数字表示最大场宽。    
    例如:  %3d  表示输出3位整型数, 不够3位右对齐。    
    %9.2f 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6,    
    小数点占一位, 不够9位右对齐。    
    %8s  表示输出8个字符的字符串, 不够8个字符右对齐。    
    如果字符串的长度、或整型数位数超过说明的场宽, 将按其实际长度输出。    
    但对浮点数, 若整数部分位数超过了说明的整数位宽度, 将按实际整数位输出;    
    若小数部分位数超过了说明的小数位宽度, 则按说明的宽度以四舍五入输出。    
    另外, 若想在输出值前加一些0, 就应在场宽项前加个0。     
    例如:  %04d  表示在输出一个小于4位的数值时, 将在前面补0使其总宽度      
    为4位。      
    如果用浮点数表示字符或整型量的输出格式, 小数点后的数字代表最大宽度,    
    小数点前的数字代表最小宽度。    
    例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9,  则    
    第9个字符以后的内容将被删除。    
    (2). 可以在"%"和字母之间加小写字母l, 表示输出的是长型数。    
    例如:  %ld  表示输出long整数    
    %lf  表示输出double浮点数    
    (3). 可以控制输出左对齐或右对齐, 即在"%"和字母之间加入一个"-" 号可     
    说明输出为左对齐, 否则为右对齐。      
    例如:  %-7d  表示输出7位整数左对齐      
    %-10s 表示输出10个字符左对齐
    2. 一些特殊规定字符    
    ━━━━━━━━━━━━━━━━━━━━━━━━━━    
    字符  作用    
    ──────────────────────────    
    /n  换行    
    /f  清屏并换页    
    /r  回车    
    /t  Tab符    
    /xhh  表示一个ASCII码用16进表示,    
    其中hh是1到2个16进制数    
    ━━━━━━━━━━━━━━━━━━━━━━━━━━    
    由本节所学的printf()函数, 并结合上一节学习的数据类型, 编制下面的程    
    序, 以加深对Turbo C2.0数据类型的了解。
    展开全文
  • C++/ C语言输出格式

    2019-07-19 17:53:49
    C++输出对齐需要包含头文件<iomanip>,当然对齐方式也分为左右两种: #include <iostream> #include<iomanip> using namespace std; int main() { int a = 9999; int b = 999; int c = ...

    首先看C++的:

    C++输出对齐需要包含头文件<iomanip>,当然对齐方式也分为左右两种:

     

    #include <iostream>
    #include<iomanip>
    using namespace std;
     
    int main()
    {
    	int a = 9999;
    	int b = 999;
    	int c = 99;
     
    	//默认右对齐
    	cout << "默认右对齐为:\n";
    	cout << setw(6) << a << endl;
    	cout << setw(6) << b << endl;
    	cout << setw(6) << c << endl;
     
    	//现在改为左对齐
    	cout << "\n改为左对齐后为:\n";
    	cout << left << setw(6) << a << endl;
    	cout << left << setw(6) << b << endl;
    	cout << left << setw(6) << c << endl;
     
    	return 0;
    }
    

     

    若想在多余位上填充字符,则: 

    #include <iostream>
    #include<iomanip>
    using namespace std;
     
    int main()
    {
    	int a = 9999;
    	int b = 999;
    	int c = 99;
     
    	//默认右对齐
    	cout << "默认右对齐为:\n";
    	cout.fill('#');//填充字符'#'
    	cout << setw(6) << a << endl;
    	cout << setw(6) << b << endl;
    	cout << setw(6) << c << endl;
     
    	//现在改为左对齐
    	cout << "\n改为左对齐后为:\n";
    	cout.fill(' ');//取消字符填充
    	cout << left << setw(6) << a << endl;
    	cout << left << setw(6) << b << endl;
    	cout << left << setw(6) << c << endl;
     
    	return 0;
    }
    

     

    再看C语言的输出格式:

    #include<iostream>
    using namespace std;
     
    int main()
    {
    	int a = 9999;
    	int b = 999;
    	int c = 99;
     
    	//默认右对齐
    	printf("默认右对齐为:\n");
    	printf("%6d\n", a);
    	printf("%6d\n", b);
    	printf("%6d\n", c);
     
    	//现在改为左对齐
    	printf("\n改为左对齐后为:\n");
    	printf("%-6d\n", a);
    	printf("%-6d\n", b);
    	printf("%-6d\n", c);
     
    	return 0;
    }
    

     

    输出对齐有两个方面,一是输出宽度,一是左对齐还是又对齐。

    在C++里面,默认是右对齐,可以通过cout.setf(std::ios::left)调整为左对齐,而且这种调整是全局的,一次设置,后面都有效。

    但是对于输出宽度的设置(使用cout.width(int i)设置)是一次性的,只影响紧随其后的一次输出。

    具体可以参看下面的代码:

    #include<iostream> int main(){ using std::cout; cout.setf(std::ios::left); int w = cout.width(); cout << "default field width = " << w << "\n"; cout.width(5); cout << "N" << ":"; cout.width(8); cout << "N * N" << "\n"; for (long i = 1; i <= 100; i *= 10){ cout.width(5); cout << i << ':'; cout.width(8); cout << i * i << "\n"; } return 0; }

    在这方面C语言的就显得简单多了,printf("%5d"),输出占用5个字符宽度,且右对齐,printf("%-5d")输出占用5个字符宽度,且左对齐。都是什么时候用就什么时候设置。

    还有一个问题就是,当实际的数据需要的宽度超出你设置的宽度的时候怎么办?

    C++的选择是,保证将数据显示完整。

    比如上面程序中的第8行:

    C++中式优先保证把数据显示完整。

    C语言使用printf其实也是一样的,优先保证把数据显示完整。

     

    展开全文
  • C语言printf格式输出对齐和右对齐以及占位 printf 格式输出 %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制...
  • C语言-格式输出

    2021-01-28 14:06:23
    C语言-格式输出 1.类型符(type) 2.精度 3.格式输出字符串 C语言-格式输出 函数:printf、sprintf、snprintf 函数声明:int printf(const char *format,...); 函数介绍:printf函数参数个数、类型都...
  • c语言编写对齐输出

    千次阅读 2019-02-21 16:55:18
    描述:读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们。 输入:只有一行,包含三个整数,整数之间以一个空格分开。 输出:只有一行,按照格式要求依次... 分析:这里需要用到的是C语言printf对齐输出...
  • 1.1 标准输入输出函数 1.1.1 格式化输入输出函数  ...Turbo C2.0 标准库提供了两个控制台格式化输入、 输出函数printf( ) 和  scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。
  • 关于C语言输出格式

    千次阅读 2016-08-22 09:55:31
    标志位:有+有-默认格式为左对齐。在位宽前面加0,补全不足位宽大小位域:%.4f,保留几位,有四舍五入的效果,%.5f:表示截取前面5位//#:显示进制符号位ep:"%#x \n" "%%0\n"等#include int main(void) { in
  • c语言printf格式输出小细节回顾 1,printf函数的格式字符 格式字符 说明 d 以带符号的十进制形式输出 o 以无符号的八进制形式输出 X,x 以无符号的十六进制形式输出 u 以无符号的十进制形式输出 c ...
  • C语言格式输出

    2020-03-04 10:55:28
    文章目录一、格式输出1、类型符(type)2、宽度(width)3、对齐标志(flags)4、精度(prec)二、格式输出到字符串三、C语言代码的多行书写四、课后作业五、版权声明 一、格式输出 格式输出的函数有printf...
  • 输出格式的控制(对齐) #include <stdio.h> int main() { int x; int cnt = 0 ; //scanf ("%d",&x); for(x=1;cnt<50;x++) { int i; int isprime = 1; //x是素数 for ( i=2; i<x;i++)...
  • <C语言>printf的对齐输出

    千次阅读 2017-08-26 15:31:42
    C语言中,常见的有两种方式可以实现其输出字符串或数字对齐输出 制表符\t  制表符\t输出的时候,会移动输出光标,实现对齐效果。因此可以在输出的对应位置,增加\t来实现对齐。但有个缺点:要求每行相同列输出...
  • 关于C语言输出格式控制符

    万次阅读 2016-11-30 10:06:40
    格式控制符参考: 格式输出字符:printf ...- 指定左对齐输出。 0 指定空位填零。 m.n 指定输出域宽度及精度。 l.h 输出长度的修正。 格式字符 指定输出的数据类型。 说明:
  • 格式输出二.格式输出到字符串三. 解析xml函数 一. 格式输出 格式说明符的形式说明如下: %[flags][width][.prec] type 类型符 type 表示输出数据的类型 宽度符 width %12s 是输出12位的字符串,不足补空格 ...
  • C语言 printf格式输出,参数详解

    万次阅读 2019-02-20 20:23:54
    有关输出对齐 #include&lt;stdio.h&gt; int main(int argc, char* argv[]) { char insertTime[20] = {"1234567890"}; double insertTime1 = 12321; printf("|%-15s|\n",insertTime...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 390
精华内容 156
关键字:

c语言输出格式对齐

c语言 订阅