c语言c中间加数字是什么意思,C语言%c中间加数字是什么意思

2020-11-22 21:00:29 字数 7149 阅读 1011

1楼:灰灰不吃羊

限制输出宽度,%2c,就是输出的宽度为2,%c省略了1,c的输出格式控制会有详细的介绍。

c语言里%f中间加数字是什么意思

2楼:匿名用户

%f是用于格式化输入输出函数,对应类型为float的格式字符。加数字的情况仅适用于输出函数,比如printf。

其形式为

printf("%a.bf", var);

其中a,b为常数。

含义为:

1 a, 代表输出占|a|(a的绝对值)个字节的宽度,当实际宽度超过a时,按实际宽度输出,否则输出a个字节,不足部分补空格。

如果a为正数,输出的有效数字在右侧,左侧补空格。

如果a为负数,输出的有效数字在左侧,右侧补空格。

2 b,代表输出带有b位小数,不足部分补0。

a,b可单独使用,比如

printf("%4f", 1.2); 会输出一个空格加上1.2。

printf("%.3f", 1.2); 会输出1.200。

printf("%-8.4f", 1.2); 会输出1.2000再输出两个空格。

3楼:匿名用户

比如%7.2f 点前面的7代表输出的数的宽度,也就是位数~包括小数点后的数字;点后的2代表小数点后面的数字的个数;,一般只写成%.2f,比如

float pi=3.1415

printf("%.2f",pi)

输出结果为3.14

参考:http://zhidao.baidu.***/question/347393726.html

4楼:多啦

以浮点数据格式输出,加数字就是表示输出浮点数据小数点后的位数

请采纳答案,支持我一下。

5楼:匿名用户

这是为了说明输出小数的格式。12.9的意思就是占12个格,其中小数部分占9格。

c语言%c是什么意思

6楼:听不清啊

是%c,不是%c

%c是输出一个字符。

7楼:

执行m=i++;等价于m=i; i++;所以m=6 i=7;

执行n=--j;等价于--j;n=j;所以n=j='5';

c语言中 %d之间加了个数字什么作用?

8楼:追忆小土豆

printf 是 输出语句, %4d 表示输出的场宽为4位,%1d 表示输出的场宽为1位, 但另有附加规定:当所给场宽度不足时,按实际需要占位输出。所以 输出 10 ,给 %1d 仍将 输出 10, 不会只输出 1,不输出0。

scanf 是输入语句,%4d 表示 读入的数 为 4位整数,超出4位 只读4位,不足4位则按实际位数 读入, %1d 表示 读入的数 为 1位整数,超出1位 只读1位。

例如: scanf("%1d%4d",&x,&y);

拍入 987654321回车

x 读入9,y读入 8765, 余下的 4321 留在输入缓冲区 供 后面的 输入语句使用。

9楼:匿名用户

表示输出或者输入时 输出的宽度

如%4d= x, 输出的x在第四个字符···前面有3个空格 4是正数 所以从左到右依次输入····如果是-4 则是%-4d=4 ,后面3个空格···谢谢采纳····

%d 是个占位符 前面加数字 相当于修饰%d 的宽度是多大举个例子

main()

如果不加6的话

输出结果:13。从冒号到13有0个空格

如果加了6

输出结果: 13,从冒号到13有6个空格懂了吗?

10楼:匿名用户

加入常数 如%nd

表示输出占n位宽度

不足n位 输出左侧补空格

超过n位,按实际宽度输出

比如printf("%4d", 10); 会输出两个空格加10而printf("%4d",12345); 则直接输出12345 不补空格,也不会截断。

11楼:匿名用户

%6d表示输出6位,如果数据不足六位就在左端补0,例如000333,超过六位就按实际数据输出

12楼:匿名用户

谢谢 我也是初学者 谢谢帮助

13楼:匿名用户

一、什么是算法

算法是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。算法常常含有重复的步骤和一些比较或逻辑判断。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。

不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模n 的函数f(n),算法执行的时间的增长率与f(n) 的增长率正相关,称作渐进时间复杂度(asymptotic time ***plexity)。时间复杂度用“o(数量级)”来表示,称为“阶”。

常见的时间复杂度有: o(1)常数阶;o(log2n)对数阶;o(n)线性阶;o(n2)平方阶。

算法的空间复杂度是指算法需要消耗的空间资源。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。

二、算法设计的方法

1.递推法

递推法是利用问题本身所具有的一种递推关系求问题解的一种方法。设要求问题规模为n的解,当n=1时,解或为已知,或能非常方便地得到解。能采用递推法构造算法的问题有重要的递推性质,即当得到问题规模为i-1的解后,由问题的递推性质,能从已求得的规模为1,2,…,i-1的一系列解,构造出问题规模为i的解。

这样,程序可从i=0或i=1出发,重复地,由已知至i-1规模的解,通过递推,获得规模为i的解,直至得到规模为n的解。

阶乘计算

问题描述:编写程序,对给定的n(n≤100),计算并输出k的阶乘k!(k=1,2,…,n)的全部有效数字。

由于要求的整数可能大大超出一般整数的位数,程序用一维数组存储长整数,存储长整数数组的每个元素只存储长整数的一位数字。如有m位成整数n用数组a[ ]存储:

n=a[m]×10m-1+a[m-1]×10m-2+ … +a[2]×101+a[1]×100

并用a[0]存储长整数n的位数m,即a[0]=m。按上述约定,数组的每个元素存储k的阶乘k!的一位数字,并从低位到高位依次存于数组的第二个元素、第三个元素……。

例如,5!=120,在数组中的存储形式为:

3 0 2 1 ……

首元素3表示长整数是一个3位数,接着是低位到高位依次是0、2、1,表示成整数120。

计算阶乘k!可采用对已求得的阶乘(k-1)!连续累加k-1次后求得。例如,已知4!=24,计算5!,可对原来的24累加4次24后得到120。细节见以下程序。

# include

# include

......

2.递归

递归是设计和描述算法的一种有力的工具,由于它在复杂算法的描述中被经常采用,为此在进一步介绍其他算法设计方法之前先讨论它。

能采用递归描述的算法通常有这样的特征:为求解规模为n的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模较大问题的解。特别地,当规模n=1时,能直接得解。

编写计算斐波那契(fibonacci)数列的第n项函数fib(n)。

斐波那契数列为:0、1、1、2、3、……,即:

fib(0)=0;

fib(1)=1;

fib(n)=fib(n-1)+fib(n-2) (当n>1时)。

写成递归函数有:

int fib(int n)

递归算法的执行过程分递推和回归两个阶段。在递推阶段,把较复杂的问题(规模为n)的求解推到比原问题简单一些的问题(规模小于n)的求解。例如上例中,求解fib(n),把它推到求解fib(n-1)和fib(n-2)。

也就是说,为计算fib(n),必须先计算fib(n-1)和fib(n-2),而计算fib(n-1)和fib(n-2),又必须先计算fib(n-3)和fib(n-4)。依次类推,直至计算fib(1)和fib(0),分别能立即得到结果1和0。在递推阶段,必须要有终止递归的情况。

例如在函数fib中,当n为1和0的情况。

在回归阶段,当获得最简单情况的解后,逐级返回,依次得到稍复杂问题的解,例如得到fib(1)和fib(0)后,返回得到fib(2)的结果,……,在得到了fib(n-1)和fib(n-2)的结果后,返回得到fib(n)的结果。

在编写递归函数时要注意,函数中的局部变量和参数知识局限于当前调用层,当递推进入“简单问题”层时,原来层次上的参数和局部变量便被隐蔽起来。在一系列“简单问题”层,它们各有自己的参数和局部变量。

由于递归引起一系列的函数调用,并且可能会有一系列的重复计算,递归算法的执行效率相对较低。当某个递归算法能较方便地转换成递推算法时,通常按递推算法编写程序。例如上例计算斐波那契数列的第n项的函数fib(n)应采用递推算法,即从斐波那契数列的前两项出发,逐次由前两项计算出下一项,直至计算出要求的第n项。

组合问题

问题描述:找出从自然数1、2、……、n中任取r个数的所有组合。例如n=5,r=3的所有组合为: (1)5、4、3 (2)5、4、2 (3)5、4、1

(4)5、3、2 (5)5、3、1 (6)5、2、1

(7)4、3、2 (8)4、3、1 (9)4、2、1

(10)3、2、1

分析所列的10个组合,可以采用这样的递归思想来考虑求组合函数的算法。设函数为void ***b(int m,int k)为找出从自然数1、2、……、m中任取k个数的所有组合。当组合的第一个数字选定时,其后的数字是从余下的m-1个数中取k-1数的组合。

这就将求m个数中取k个数的组合问题转化成求m-1个数中取k-1个数的组合问题。设函数引入工作数组a[ ]存放求出的组合的数字,约定函数将确定的k个数字组合的第一个数字放在a[k]中,当一个组合求出后,才将a[ ]中的一个组合输出。第一个数可以是m、m-1、……、k,函数将确定组合的第一个数字放入数组后,有两种可能的选择,因还未去顶组合的其余元素,继续递归去确定;或因已确定了组合的全部元素,输出这个组合。

细节见以下程序中的函数***b。

# include

# define maxn 100

int a[maxn];

void ***b(int m,int k) }

} void main()

3.回溯法

回溯法也称为试探法,该方法首先暂时放弃关于问题规模大小的限制,并将问题的候选解按某种顺序逐一枚举和检验。当发现当前候选解不可能是解时,就选择下一个候选解;倘若当前候选解除了还不满足问题规模要求外,满足所有其他要求时,继续扩大当前候选解的规模,并继续试探。如果当前候选解满足包括问题规模在内的所有要求时,该候选解就是问题的一个解。

在回溯法中,放弃当前候选解,寻找下一个候选解的过程称为回溯。扩大当前候选解的规模,以继续试探的过程称为向前试探。

组合问题

问题描述:找出从自然数1,2,…,n中任取r个数的所有组合。

采用回溯法找问题的解,将找到的组合以从小到大顺序存于a[0],a[1],…,a[r-1]中,组合的元素满足以下性质:

(1) a[i+1]>a,后一个数字比前一个大;

(2) a-i<=n-r+1。

按回溯法的思想,找解过程可以叙述如下:

首先放弃组合数个数为r的条件,候选组合从只有一个数字1开始。因该候选解满足除问题规模之外的全部条件,扩大其规模,并使其满足上述条件(1),候选组合改为1,2。继续这一过程,得到候选组合1,2,3。

该候选解满足包括问题规模在内的全部条件,因而是一个解。在该解的基础上,选下一个候选解,因a[2]上的3调整为4,以及以后调整为5都满足问题的全部要求,得到解1,2,4和1,2,5。由于对5不能再作调整,就要从a[2]回溯到a[1],这时,a[1]=2,可以调整为3,并向前试探,得到解1,3,4。

重复上述向前试探和向后回溯,直至要从a[0]再回溯时,说明已经找完问题的全部解。按上述思想写成程序如下:

# define maxn 100

int a[maxn];

void ***b(int m,int r)

char *buile_lcs(char s[ ],char *a, char *b)

return s;

} void main()

7.迭代法

迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行:

(1) 选一个方程的近似根,赋给变量x0;

(2) 将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0;

(3) 当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。

若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就认为是方程的根。上述算法用c程序的形式表示为:

程序如下:

迭代法求方程组的根

while (delta>epsilon);

for (i=0;i

printf(“变量x[%d]的近似根是 %f”,i,x);

printf(“\n”);

} 具体使用迭代法求根时应注意以下两种可能发生的情况:

(1)如果方程无解,算法求出的近似根序列就不会收敛,迭代过程会变成死循环,因此在使用迭代算法前应先考察方程是否有解,并在程序中对迭代的次数给予限制;

(2)方程虽然有解,但迭代公式选择不当,或迭代的初始近似根选择不合理,也会导致迭代失败。

8.穷举搜索法

穷举搜索法是对可能是解的众多候选解按某种顺序进行逐一枚举和检验,并从众找出那些符合要求的候选解作为问题的解。

将a、b、c、d、e、f这六个变量排成如图所示的三角形,这六个变量分别取[1,6]上的整数,且均不相同。求使三角形三条边上的变量之和相等的全部解。如图就是一个解。

程序引入变量a、b、c、d、e、f,并让它们分别顺序取1至6的整数,在它们互不相同的条件下,测试由它们排成的如图所示的三角形三条边上的变量之和是否相等,如相等即为一种满足要求的排列,把它们输出。当这些变量取尽所有的组合后,程序就可得到全部可能的解。程序如下:

按穷举法编写的程序通常不能适应变化的情况。如问题改成有9个变量排成三角形,每条边有4个变量的情况,程序的循环重数就要相应改变。

在C语言中是什么含义,"+++"在C语言中是什么意思?

1楼 匿名用户 在c语言中, 的含义是 单目运算符, 是原始值累加1。 c语言是一门通用计算机编程语言,应用广泛。c语言的设计目标是提供一种能以简易的方式编译 处理低级存储器 产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 尽管c语言提供了许多低级处理的功能,但仍然保持着良好跨平台的...

c++程序中是什么意思,在c++语言中,^是什么意思

1楼 apple林 按位异或 c 提供了六种位运算运算符 这些运算符可能只允许整型操作数,即char short int和long,无论signed或者unsigned。 按位and 按位or 按位异或 左移 右移 求反 一元运算 2楼 申江渔夫 通过将符号 放在类型名称的后面来指定该类型的句柄 3...

c语言y x+5是什么意思,x+=5在c语言中是什么意思

1楼 匿名用户 y x 5 y y x 5 2楼 听不清啊 它等价于y y x 5 3楼 和蔼的杰尼 就是y y x 5 和a b就是a a b,a b就是a a b是同样的意思 4楼 夔芃芃理寿 最好写成x y 5 容易读懂。不过关系运算符是比赋值运算符优先级高。 5楼 钊灵寒原雅 y 5表示逻辑...