注册 登录
编程论坛 C++教室

帮忙运行一下这两个程序,多谢,急!!!!!

婷儿 发布于 2008-06-22 18:44, 586 次点击
#include <iostream.h>
#include <string.h>
void main()
{
   char s1[1000],s2[1000],g1[1000],g2[1000],a[1001],c[1001],b[1];
   int M,N,t,m=0;
   cin.getline(s1,100);
   cin.getline(s2,100);
   M=strlen(s1);//求s1长度
   N=strlen(s2);//求s2长度
   if (strcmp(s1,s2)>=0)
   {
     for(int i=M-N;i>0;i--)
     {  
          g1[i]="0";
      }
       strcat(g1,s2);//连接g1,s2
       strcat(b,s1);//连接b,s1
      for(i=M;i>0;i--);
      {
       t=(g1[i]-'0')+(b[i]-'0')+m;//将两相加的字符转化成整数
        if(t>9)
       {
         m=1;t=t-10;
        }
       a[i]=t+'0';//输出所有两相加的整数再转化成字符串
    }            //实现进位
     for( int j=M,i=1;i<j;i++,j--)
    {
      c[i]=a[i];
      a[i]=a[j];
      a[j]=c[i];
     }            
    cout<<"a="<<a<<endl;//逆序输出
    }
   if (strcmp(s1,s2)<0)
   {
     for(int i=N-M;i>0;i--)
     {  
          g2[i]="0";
      }
       strcat(g2,s1);//连接g2,s1
       strcat(b,s2);//连接b,s2
      for(i=N;i>0;i--);
      {
       t=(g2[i]-'0')+(b[i]-'0')+m;//将两相加的字符转化成整数
        if(t>9)
       {
         m=1;t=t-10;
        }          //实现进位
       a[i]=t+'0';//输出所有两相加的整数再转化成字符串
    }
     for( int j=N,i=1;i<j;i++,j--)
    {
      c[i]=a[i];
      a[i]=a[j];
      a[j]=c[i];
     }
    cout<<"a="<<a<<endl;//逆序输出
    }





#include <iostream.h>
#include <string.h>
void main()
{
   char s1[100],s2[100],g1[100],g2[100],a[101],c[101],b="0";
   int M,N,t,m=0;
   cin.getline(s1,100);
   cin.getline(s2,100);
   M=strlen(s1);//求s1长度
   N=strlen(s2);//求s2长度
   if (strcmp(s1,s2)>=0)
   {
     for(int i=M-N;i>0;i--)
     {  
          g1[i]="0";
      }
       strcat(g1,s2);//连接g1,s2
       strcat(b,s1);//连接b,s1
      for(i=M;i>0;i--);
      {
       t=(b[i]-'0')-(g1[i]-'0')+m;//将两相减的字符转化成整数
        if(t<0)
       {
         m=10;t=t+10;
       b[i-1]=b[i-1]-'0'-1+'0'
       }           //实现借位
       a[i]=t+'0';//输出所有两相减的整数再转化成字符串
    }
     for( int j=M,i=1;i<j;i++,j--)
    {
      c[i]=a[i];
      a[i]=a[j];
      a[j]=c[i];
     }
    cout<<"a="<<a<<endl;//逆序输出
    }
   if (strcmp(s1,s2)<0)
   {
     for(int i=N-M;i>0;i--)
     {  
          g2[i]="0";
      }
       strcat(g2,s1);//连接g1,s2
       strcat(b,s2);//连接b,s1
      for(i=N;i>0;i--);
      {
       t=(b[i]-'0')-(g2[i]-'0')+m;//将两相减的字符转化成整数
        if(t<0)
       {
         m=10;t=t+10;
        b[i-1]=b[i-1]-'0'-1+'0'

        }   //实现借位
       a[i]=t+'0';
    }      //输出所有两相减的整数再转化成字符串
     for( int j=N,i=1;i<j;i++,j--)
    {
      c[i]=a[i];
      a[i]=a[j];
      a[j]=c[i];
     }
    cout<<"a="<<a<<endl;//逆序输出
    }
9 回复
#2
婷儿2008-06-22 18:45
这是在C++环境下运行
谢了
#3
GLOCET2008-06-22 18:48
怎么了,有错误吗?
#4
中学者2008-06-22 18:52
大整数加法??
#5
婷儿2008-06-22 18:54
每运行过,你帮忙调试一下,我这里C++没环境
#6
中学者2008-06-22 18:55
抱歉,我要闪了... - -
#7
婷儿2008-06-22 18:56
biezouya
别走呀,帮忙调试以下
#8
kongwei2542008-06-23 17:13
#9
守鹤2008-06-23 19:11
想帮忙,最近考试连续不断
没办法,好恐怖的英语啊,什么都不会,咋办啊!
1