c语言 小数点后两位,在C语言计算出的结果中怎么保留小数点后两位

您所在的位置:网站首页 c语言求小数点后两位 c语言 小数点后两位,在C语言计算出的结果中怎么保留小数点后两位

c语言 小数点后两位,在C语言计算出的结果中怎么保留小数点后两位

2024-07-11 21:08| 来源: 网络整理| 查看: 265

2016-01-14 回答

#include

#include

#define max_len 200

char a[max_len + 10];

char b[max_len + 10];

int va[max_len + 10]; //被除数, an1[0]对应于个位

int vb[max_len + 10]; //除数, an2[0]对应于个位

int vc[max_len + 10]; //存放商,aresult[0]对应于个位

//长度为 nlen1 的大整数p1 减去长度为nlen2 的大整数p2

//结果放在p1 里,返回值代表结果的长度

//如不够减返回-1,正好减完返回 0

//下面判断p1 是否比p2 大,如果不是,返回-1

int substract( int * p1, int * p2, int nlen1, int nlen2)

{

int i;

if( nlen1 = 0; i -- )

{

if( p1[i] > p2[i] )           break; //p1>p2

else if( p1[i] =nlen2 时,p2[i] = 0

p1[i] -= p2[i];

if( p1[i] = 0 ; i-- )

if( p1[i] )//找到最高位第一个不为0

return i + 1;

return 0;//全部为0,说明两者相等

}

int main()

{

freopen("test.txt","r",stdin);

int test;

scanf("%d",&test);

while(test--){

scanf("%s", a);

scanf("%s", b);

int i, j;

int lena = strlen(a);

memset( va, 0, sizeof(va));

memset( vb, 0, sizeof(vb));

memset(vc, 0, sizeof(vc));

for( j = 0, i = lena - 1;i >= 0 ; i --)

va[j++] = a[i] - '0';

int lenb = strlen(b);

for( j = 0, i = lenb - 1;i >= 0 ; i --)

vb[j++] = b[i] - '0';

if( lena  0)

{

for( i = lena -1; i >= ntimes; i -- )

vb[i] = vb[i-ntimes];//朝高位移动

for( ; i >= 0; i--)//低位补0

vb[i] = 0;

lenb = lena;

}

for( j = 0 ; j 

= 0)

{

lena = ntmp;

vc[ntimes-j]++; //每成功减一次,则将商的相应位加1

}

}

//下面输出结果,先跳过高位0

for( i = max_len ; (i >= 0) && (vc[i] == 0); i -- );

if( i >= 0)

for( ; i>=0; i--)

printf("%d", vc[i]);

else

printf("0");

printf("\n");

}

return 0;

}



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3