c语言 小数点后两位,在C语言计算出的结果中怎么保留小数点后两位 |
您所在的位置:网站首页 › c语言求小数点后两位 › c语言 小数点后两位,在C语言计算出的结果中怎么保留小数点后两位 |
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 |