如何将整数结果变成字符串打印出来?
#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中,然后打印,或可以返回!
我像上面那样做总是出错!
有乱码!
请大家帮帮忙!
[解决办法]
如何将整数结果变成字符串打印出来?
char temp[255];
memset(temp, 0, 255);
sprintf(temp, "%d ", 你的整形变量);
printf( "%s ",temp);
[解决办法]
计算进位的位置不正确,while(d> 0)应该在双重for循环的里面
更常用的是先不管进位,做完双重循环后再处理,时间更省
你把输入当成从低位到高位来处理的
[解决办法]
#include <iostream.h>
#include <string.h>
void exponent()//求幂
{
char s1[256],s2[256];
cin> > s1;
cin> > s2;
int len1 = strlen(s1);
int len2 = strlen(s2);
int len = len1 + len2;
int i, i1, i2, n1[256] = {0}, n2[256] = {0}, a[256] = {0};
for(i1 = 0; i1 < len1; i1++)
n1[len1 - i1 - 1] = (int)(s1[i1] - '0 ');
for(i2 = 0; i2 < len2; i2++)
n2[len2 - i2 - 1] = (int)(s2[i2] - '0 ');
for(i1 = 0; i1 < len1; i1++)
{
for(i2 = 0; i2 < len2; i2++)
a[i1 + i2] += n1[i1] * n2[i2];
}
for(i = 0; i < len - 1; i++)
{
a[i+1] += a[i]/10;
a[i] %= 10;
}
while(len > = 0 && !a[len])
len--;
len++;
for(i = len - 1;i > = 0; i--)
cout < <a[i];
cout < <endl;
char* result=new char[len+1];
for(i = len - 1;i > = 0; i--)
result[len - i - 1] = (char)(a[i] + '0 ');
result[len] = '\0 ';
cout < <result;
delete result;
}
[解决办法]
函数名称: itoa
函数原型: char *itoa(int value,char *string,int radix)
函数功能: 将整形数value转换为其等价的字符串
函数返回: 指向string的指针
参数说明: value-要转化的数值,radix-转换的进制,如10表示按十进制转换
所属文件: <stdlib.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
int number=123456L;
char string[25];
ltoa(number,string,10);
printf( "integer=%ld string=%s ",number,string);
return 0;
}
怎么将整数结果变成字符串打印出来
如何将整数结果变成字符串打印出来?#includeiostream.h#includestdio.h#includestdlib.h#includest
