思路来自板蓝根:http://blog.csdn.net/plank_root/article/details/51277167
笔算除法时不足取前位余数,借这一性质将冗长的字符数组转化为N个十位数的除法和取余……另外:因为空格也是字符,所以需要在%s和%c间添加空格来接收.
最后输出的时候进行判断,因为最高位可能出现除后结果为0所以进行判断.
#include<stdio.h>
main()
{
int rest=0,i=0;
char s[1002]={0},a[1002]={0};
char get;
scanf("%s %c",s,&get);
while(s[i]!='\0')
{
a[i]=(rest*10+(s[i]-48))/(get-48)+48;
rest=(rest*10+s[i]-48)%(get-48);
i++;
}
if (a[0] == '0' && a[1] != 0)
printf("%s", a+1);
else
printf("%s",a);
printf(" %d",rest);
}