/*不好意思没有看清题目,我的程序可以实现加法和减法,你可以参考以下东西。
http://zhidao.baidu.com/question/16273609.html?si=2
http://zhidao.baidu.com/question/16580850.html?si=3
*/
#include
#include
int getlength(char *ch)
{
int i;
for(i=0;i<1000;i++)
if(ch[i]=='\0')
break;
return i;
}
void plusdata(int *dt,int *pdt,int k,int kk)
{
int i;
for(i=0;i
dt[i]=dt[i]+pdt[i];
if(dt[i]>9)
{
dt[i]-=10;
dt[i+1]++;
}
}
if(dt[i]>9)
{
dt[i]-=10;
dt[i+1]++;
}
if(dt[kk]!=0)
i=kk;
else
i=kk-1;
for(;i>=0;i--)
cout<
void minusdata(int *dt,int *mdt,int k,int kk,int signal)
{
int i;
for(i=0;i
dt[i]=dt[i]-mdt[i];
if(dt[i]<0)
{
dt[i]+=10;
dt[i+1]--;
}
}
if(dt[i]<0)
{
dt[i]+=10;
dt[i+1]--;
}
while(dt[kk]==0)
kk--;
if(signal==0)
cout<<'-';
for(i=kk;i>=0;i--)
cout<
void main()
{
char ch1[1000],ch2[1000],ch0[2],ch;
int data1[1001],data2[1001];
int i,j,k1,k2,flag=0;
for(i=0;i<1001;i++)
{
data1[i]=0;
data2[i]=0;
}
cout<<"You can input the first date"<
cout<<"You can input the second date"<
cout<<"What operation you want?( + or - )"<
ch0[1]='\0';
j=0;
while(ch1[j]=='0')
j++;
for(i=0;i<999-j;i++)
ch1[i]=ch1[i+j];
j=0;
while(ch2[j]=='0')
j++;
for(i=0;i<999-j;i++)
ch2[i]=ch2[i+j];
k1=getlength(ch1);
k2=getlength(ch2);
j=k1;
for(i=0;i
j--;
ch0[0]=ch1[j];
data1[i]=atoi(ch0);
// cout<
flag=1;
}
// cout<
for(i=0;i
j--;
ch0[0]=ch2[j];
data2[i]=atoi(ch0);
// cout<
flag=1;
}
// cout<
if(flag==0)
{
if(ch=='+')
{
if(k1
else
plusdata(data1,data2,k2,k1);
}
if(ch=='-')
{
if(k1==k2)
{
while(data1[k1-1]==data2[k1-1])
k1-=1;
if(data1[k1-1]>data2[k1-1])
minusdata(data1,data2,k2,k2,1);
else
minusdata(data2,data1,k2,k2,0);
}
else
{
if(k1>k2)
minusdata(data1,data2,k2,k1,1);
else
minusdata(data2,data1,k1,k2,0);
}
}
}
else
cout<<"You have input a invaluable char!"<