输入两个字符串,空格分开,每个字符串最大长度为100个字符。求第一个整数除以第二个整数以后的余数。

输入:
输入两个以空格分隔的字符串,输入的每个字符串最大长度是100个字符。

输出:
输出为两个字符串相除以后的余数。如果结果异常,输出null

样例输入:
123456789 23456789

样例输出:
6172844

答案提示:
6172844
就是123456789 % 23456789这样的大数相除取余数的问题,求大神、、、、

第1个回答  推荐于2016-11-13
main()
{
char str1[100],str2[100];
long num1=0,num2=0;
int i,j;
memset(str1,0,sizeof(str1));/*数组置0,可省略*/
memset(str2,0,sizeof(str2));
scanf("%s %s",str1,str2);

for(i=0;i<strlen(str1);i++)
num1=str1[i]-48+10*num1;/*将字符型数据转化为对应的数据,然后累加*/
for(i=0;i<strlen(str2);i++)
num2=str2[i]-48+10*num2;
printf("%ld",num1%num2);
}追问

这个我需要导入什么库吗?大神能不能给一个完整的代码啊,我急用啊,就是输入123456789空格23456789回车,输出6172844
,谢谢大神啊~~~
而且我想要的就是最好是两个字符串,这样无论多少位都可以实现,您的这个输出还是有%ld的长整形的限制吧、、、

追答

库只需要基本的输入输出头文件就可以了。要实现任意位数据的计算,这是我考虑不周了,我只考虑了你给的样例,要实现大数的计算可以查看网站(这个我也要学,55555)http://bbs.csdn.net/topics/390283142

本回答被提问者采纳
第2个回答  2015-11-20
求余数是只有被除数为0才错误吧。如果有其他情况会出错告诉我我也学习下。嘿嘿
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d %d",&a,&b);

if(b==0)
printf("null");
else
{
c=a%b;
printf("%d\r\n",c);
}
return 0;
}
相似回答