精度计算————乘法(大数乘小数)
计算一个大数乘以一个10以内的小数
#include <stdio.h> #include <math.h> #include <string.h> //精度计算————乘法(大数乘小数) void mult(char c[], char ans[], int m) //c数组存被乘数,ans数组存储计算结果,m存储乘数(m<10) { char s[100]; int len = strlen(c), add=0, i; //add存数要进位的数, i计数用 for(int i = 0; i < len; i++) s[len-i-1] = c[i] - '0'; for(i = 0; i < len; i++) { s[i] = s[i] * m + add; add = s[i] / 10; s[i] = s[i] % 10; } if(add > 0) {len = i + 1; s[len-1] = add;} for(i = 0; i < len; i++) ans[len-i-1] = s[i] + '0'; ans[len] = '\0'; } int main() { char c[4] = "123"; char ans[100]; mult(c, ans, 3); printf("%s\n", ans); return 0; }