① c语言如何精确小数点后指定位数
可以在输出时,指定小数点后的有效位数,实现精确到若干位的效果。
要精确到小数点后若干位,则数据类型为浮点型,可能为单精度(float)或双精度(double)。
在C语言中,使用格式化输出函数printf来实现输出。
输出格式为
%.NF
1 %为格式化字符串的引导字符。
2 .N表示指定显示N位小数。
3 F为类型字符,对于float, F值为f, 对于double,F值为lf。
举例:
1 要输出float a=1.23234; 保留3位小数的写法为:
printf("%.3f",a);
2 输出double b=123.345232; 保留4为小数,写法为:
printf("%.4lf",b);
② c语言里怎么求任意正整数的位数
其实不用循环也可以做到,对其求以10为底的对数,然后取整数部分再加1,就是这个整数的位数.
下面是代码:
#include<stdio.h>
#include<math.h>
void main()
{
int n;
printf("please input an integer:");
scanf("%d",&n);
printf("%d的位数是%d\n",n,(int)log10(n)+1);
}
③ C语言中如何判断一个数的位数
C语言中判断一个数的位数:
#include<stdio.h>
voidmain()
{
voidnum(inta);
longa;
scanf("%ld",&a);
num(a);
}voidnum(inta)
{
longb=0;
inti;
for(i=0;a>0;a/=10,i++)
{
b=(b*10)+a%10;
}
printf("%d位的,逆序数=%ld ",i,b);
}
④ 如何用c语言计算小数点后位数
这个要看小数按什么格式输入。
如果按%s输入,也就是按字符串格式输入,先找到小数点的位置,然后统计下小数点后数字的长度。
具体实现可参考:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
intmain(intargc,char*argv[])
{
chara[128];
while(scanf("%s",a)!=EOF)
{
if(strstr(a,".")!=NULL)
printf("%d ",strlen(strstr(a,".")+1));
else
printf("0 ");
}
system("pause");
return0;
}
这是最后一个已经出现错误,所以遇到要精确判断小数点的位数,最好直接按字符串读入,这和图灵机的工作原理暗暗相合。
⑤ c语言中的 float的什么 精确到多少位多少位到底是怎么算的
一个float型数据,通常说精确到多少位就表示精确到小数点后多少位,可以通过printf实现。例如,
float f=10.3576;//精确到2位
printf("%.2f",f);//结果为10.36
int printf( const char *format, ... );printf函数根据format给出的格式打印输出到STDOUT(标准输出)。用%m.nf精度修饰符让你指定想要的小数位数, 例如,%12.6f表示用12位显示(含小数点及所有数字),小数点后保留6位小数。
⑥ 如何用c语言计算小数点后位数(float本身都无法精确)
100.25432 是十进制数,存入float 要先化成2进制float格式,十进制化二进制,通常化不净,于是就引入了截断误差,以至于,只有6-7位有效数字精度了。
你可以用字符串来输入和存放。
char s[30]="100.25432";
int L,k,i,n;
L = strlen(s); // 计算字符串长度, 得 9
for (i=0;i<L;i++) if (s[i]=='.') { k=i; break;}; // 找出小数点在哪里, 得 3
n = L - k - 1; // 小数点后的位数,得 5
-----
如果输入,前面添输入语句:
printf("please input 100.25432\n");
scanf("%s",s); // 读入 100.25432
接下来同样计算 L,k,n 就可以了。
⑦ C语言怎么计算一个数有多少位
C语言怎么计算一个数有多少位的方法:
输入待计算的数x
定义一个数位的变量int n=0;
循环,x每次缩小10倍,n=n+1; 最终x会变成0,循环结束
输出n值
代码:
#include<stdio.h>
voidmain()
{
intx,m,n=0;
printf("inputx:");scanf("%d",&x);
m=x;//备份原数,供输出用
do{
n++;
x/=10;
}while(x>0);
printf("%d是%d位数 ",m,n);
}