如何将整数结果变成字符串打印出来?
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void exponent()//求幂
{
long b,d;
int i,i1,i2,j,k,n,n1,n2,a[256]={0};
char s1[256],s2[256],*temp;
char *result;
cin>>s1;
cin>>s2;
n1=strlen(s1);
n2=strlen(s2);
d=0;
temp=new char[10];
for(i1=0,k=n1-1;i1<n1;i1++,k--)
{
for(i2=0,j=n2-1;i2<n2;i2++,j--)//s1的一位与s2的各个位相乘
{
i=i1+i2;
b=a[i]+(s1[k]-48)*(s2[j]-48)+d;//记录该位与s2某位相乘的结果
a[i]=b%10;
d=b/10;//记录进位
}
while(d>0)//若进位不为0,向s1的前一位相加
{
i=i+1;
a[i]=a[i]+d%10;
d=d/10;
}
n=i;//记录计算和存储的位置
}
result=new char[n+3];
for(i=n;i>=0;i--)
cout<<a[i];
cout<<endl;
for(i=n;i>=0;i--)
{
sprintf(result,"%d\n",a[i]);
strcat(result,temp);
}
cout<<result;
delete temp;
delete result;
}
int main()
{
exponent();
return 0;
}
大数相乘问题,
我想将结果放到字符串result中,然后打印,或可以返回!
我像上面那样做总是出错!
有乱码!
请大家帮帮忙!