设计一个处理任意位数的整数计算的程序。它能完成任意位数的整数的输入,存储与输出。提供对这种整数作加、减、乘、除、乘方等的函数,提供若干变量,使人可以利用前面的计算结果进行后面的计算。
如何分析!谢谢!
写了一段减法的,有错,请帮改一下。谢谢!
#include <stdio.h> #include <string.h>
int main (int argc,char *argv[]); void reverse_string(char *str); int check_string(const char *str);
int main(int argc,char *argv[]) { char left[1024]; char right[1024]; char result[1024]; int left_len,right_len,max_len; int carry=0; int i,miss; printf("请输入减数:"); scanf("%s",left); if(check_string(left)!=0) { printf("减数有错,请重新输入!\n"); exit(-1); } printf("请输入被减数:"); scanf("%s",right); if(check_string(right)!=0) { printf("被减数有错,请重新输入!\n"); exit(-1); } reverse_string(left); reverse_string(right); left_len=str(left); right_len=strlen(right); max_len=(left_len>right_len)?left_len:right_len; for(i=max_len;i>0;i--) { sum-=left[i]-0; carry=miss/10; result[i]=miss%10-'0'; } if(carry) { result[i--]=carry-'0'; } result[i]=0; reverse_string(result); printf("两数相减的差为:%s.\n",result); return 0; }
void reverse_string(char *str) { char temp; int len,harf_len,i; len=strlen(str); harf_len=len/2; for(i=harf_len;i>0;i--) { temp=str[i]; str[i]=str[len-1-i]; str[len-1-i]=temp; } }
int check_string(const char *str) { int len,i; len=strlen(str); for(i=len;i>0;i--) { if(str[i]>'0'||str[i]<'9') { return -1; } } return 0; }