c语言a除以b编程,1017 A除以B(c语言实现)

1017 A除以B(c语言实现) (20 分)

本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。

输入格式:

输入在一行中依次给出 A 和 B,中间以 1 空格分隔。

输出格式:

在一行中依次输出 Q 和 R,中间以 1 空格分隔。

输入样例:

123456789050987654321 7

输出样例:

17636684150141093474 3

分析:

此题最坑的地方就是如果被除数前面有很多0,则输出的结果可能为000…而不是单个0或者什么也不输出,这会导致错误

代码:

#include

#include

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {

char str[1001];

int ss[1000];

int b,i=0,temp=0,j,remain=0,k=0;

scanf("%s %d",&str,&b);

while(str[i]){

temp=remain*10+(str[i]-'0');

ss[i]=temp/b;

i++;

remain=temp%b;

}

//打印

for(j=0;j

if(ss[j]!=0){

break;

}

k++; //统计结果前面有几个0

}

if(k==i){

printf("0"); //如果结果全为0,则只输出一个0

}

for(j=k;j

printf("%d",ss[j]); //如果结果不全为0

}

printf(" %d",remain);

return 0;

}

你可能感兴趣的:(c语言a除以b编程)