大家帮我看看这个程序 我运行的时候总是提示有个错误 不知道是怎么回事 谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/26 03:45:58
是关于长整数的四则运算的
#include<iostream>
#include<string>
#include<set>
using namespace std;
int strcmp(char* a,char* b)
{
int la=strlen(a);//取整数a的位数
int lb=strlen(b);//取整数b的位数
if(la>lb)return 1;
else if(la<lb) return -1;//长的整数值大.,
else if(a<b) return -1;
else return 1;//长度相等则可按一般的字符串比较大小’,
}
char* stradd(char* a,char* b)
{char*p;//存放两数的和
int la=strlen(a);//取整数a的位数’,
int lb=strlen(b);//取整数b的位数.,
int h=0,lp=lb;
if(strcmp(b,a)) swap(a,b);//如果b>a.则a.b交换’,
int c=0;//c是进位
for(int i=0;i<lb;++i)
{
h=a[la-i-1]-'0'+b[lb-i-1]-'0'+c;// 转换成数值运算’,
if(h>9){h=h-10;c=1;}
else c=0;
p[i]=h+'0';// 还原为字符’,
}
//处理a的高位部分’,
for(i=lb;i<la;i++)
{
h=a[la-i-1]-'0'+c;
if(h>9){h=h-10;c=1;}
else c=0;
p[i]='0' +h;
}
if(c>0)//如果还有

P这个数组没有初始化,你自己看看吧
下面如果有错,我也没办法

#include<iostream>
#include<string>
#include<set>
using namespace std;
char p[110];
int strcmp(char* a,char* b)
{
int la=strlen(a);//取整数a的位数
int lb=strlen(b);//取整数b的位数
if(la>lb)return 1;
else if(la<lb) return -1;//长的整数值大.,
else if(a<b) return -1;
else return 1;//长度相等则可按一般的字符串比较大小’,
}
char* stradd(char* a,char* b)
{
int i;
int la=strlen(a);//取整数a的位数’,
int lb=strlen(b);//取整数b的位数.,
int h=0,lp=lb;
if(strcmp(b,a)) swap(a,b);//如果b>a.则a.b交换’,
int c=0;//c是进位
for(i=0;i<lb;++i)
{
h=a[la-i-1]-'0'+b[lb-i-1]-'0'+c;// 转换成数值运算’,
if(h>9){h=h-10;c=1;}
else c=0;
p[i]=h+'0';// 还原为字符’,
}
//处理a的高位部分’,
for(i=lb;i<la;i++)
{
h=a[la-i-1]-'0'+c;
if(h>9){h=h-10;c=1;}