❶ 在c语言中的百分比怎么精确到小数和保留整数四舍五入
#include <stdio.h>
int main()
{ int a,b,k;
printf("请输入分子分母和百分比的小数位数: ");
scanf("%d%d%d",&a,&b,&k);
printf("%d/%d=%.*f%% ",a,b,k,a*100.0/b);
return 0;
}
❷ C语言精确运算
呐, 一万都能求
#include "stdafx.h"
#include <stdio.h>
int main()
{
int a[9999]={1},top=1,n, i, j;
scanf("%d",&n);
for(i=2;i<n+1;i++)
{
int c=0;
for( j=0;j<top;j++)
{
a[j]=a[j]*i+c;
c=a[j]/10000;
a[j]%=10000;
}
if(c)
a[top++]=c;
}
printf("%d",a[top-1]);
for(i=top-2;i>=0;i--)
printf("%04d",a[i]);
}
❸ 在C语言中如何实现精确计时
time()
头文件:time.h
函数原型:time_t time(time_t * timer)
功能:返回以格林尼治时间(GMT)为标准,从1970年1月1日00:00:00到现在的此时此刻所经过的秒数。
2.clock()
头文件:time.h
函数原型:clock_t clock(void);
功能:该函数返回值是硬件滴答数,要换算成秒,需要除以CLK_TCK或者 CLK_TCKCLOCKS_PER_SEC。比如,在VC++6.0下,这两个量的值都是1000。
3. timeGetTime()
头文件:Mmsystem.h 引用库: Winmm.lib
函数原型:DWORD timeGetTime(VOID);
功能:返回系统时间,以毫秒为单位。系统时间是从系统启动到调用函数时所经过的毫秒数。注意,这个值是32位的,会在0到2^32之间循环,约49.71天。
❹ 如何提高c语言精确度
1.规定明确的数据类型(int、double、float)
2.用
Math
里的函数舍去或补齐
3.麻烦一点、设定数据偏移量,在舍去或补齐编译量范围内的数据
比如
偏移量为
0.001
if
(0.800000011 -
0.800 <
0.001
*
5)
{
0.800000011 =
0.800;
}
else
{
0.800000011 =
0.800
+
0.001;
}
至于
0.800
这个数是怎么取的
方法有很多
可以截取字符串,可以计算,可以用Math里的函数
计算的方法
:
0.800000011 -
0.800000011 %
0.001
计算过程中一定要明确数据类型,数据类型越明确误差越小
❺ 求C语言小数精确计算
你好,在编程中不要指望去得到一个精确的数字,而应该是顶一个误差范围(相对误差)。如 double eps = 0.000000001;然后再把数字与 eps 比较。
if((68 - n)<eps)即认为 n = 68;。当然,这是人工处理。如果想得到精确数字,可以用 Boost 库。
❻ C语言编程题 计算分数精确值
自己写方法的话:
void
fun(int
x,int
y,int
d)//x为分子,y为分母,d为精确位数
{
int
temp;
printf("%d.",x/y);//整数部分
while(d>0)
{
x=x%y;
x*=10;
printf("%d",x/y);
d--;
}
}
int
main()
{
int
x,y,d;
x=1;y=3;d=4;
printf("分数%d/%d,精确%d位,为:",x,y,d);
fun(x,y,d);
return
0;
}
❼ 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语言中如何指定精确到小数点后任意位数
Note1:
正数 x 四舍五入的技巧:
x --> (int)(x+0.5)
当 x=n+r, 0<=r<1,
若 0<=r<0.5, 则r+0.5<1, (int)(x+0.5)=(int)(n+r+0.5)=n
若 0.5<=r<1, 则1<= r+0.5, (int)(x+0.5)=(int)(n+r+0.5)=n+1
Note2:
举例来说: 若正数要依舍去法精确到小数点后第二位
x --> (int)(x*100)/100 就好.
例如 3.2794 --> (int)(327.94)/100=327/100=3.27
Note3:
举例来说: 若正数要四舍五入精确到小数点后第二位
x*100 四舍五入再除以100 就好
也就是 (int)(x*100+0.5)/100
❾ 怎样用C语言实现精确计算浮点数的幂
帮助1楼补充一点
可以随意输入两个数,比如你说的95.123 与12
#include<stdio.h>
#include<math.h>
void mian()
{
double power,f;
float x;
int y;
scanf("%f,%d",&x,&y);
power=pow(x,y);
f=power;
printf("f(x,y)=%.3f",pow(x,y));
}
结果是548815696580962014000000.000
噢,我补充一下,系统默认的是小数点后6位的吧
想要得出小数点超过6位的时候,是无法控制的
6位之内才可以控制
超过6位...可能我学艺未精,无法参透 。