西蒙吹吹 发表于 2017-1-1 20:41:20

求大神帮我看看哪里错了

#include<stdio.h>
#define n 50
main()
{
        char a={},b={},c={},ch,f,m;
        int i,d=0,e=0,g,h,k,j;
        for(i=0;i<n;i++)//全部初始化为0,防止“\0”的出现
        {
                a='0';b='0';c='0';
        }
        for(i=n-1;i>=0;i--)//输入字符
        {
                scanf("%c",&ch);
                if(ch==' ')break;
                a=ch;
                d++;
        }
        for(i=n-1;i>=0;i--)//同上
        {
                scanf("%c",&ch);
                if(ch=='\n')break;
                b=ch;
                e++;
        }
        for(i=n-d,g=0;g<=d/2-1;i++,g++)//逆序
        {
                f=a;
                a=a;
                a=f;
        }
        for(i=n-d,g=0;g<=e/2-1;i++,g++)//同上
        {
                h=b;
                b=b;
          b=h;
        }
       for(i=n-1;i>=0;i--)//解决进位的问题
        {   
          if(((a-'0')+(b-'0'))/10==0)//解决不进位的算法
          {
                  if((a-'0')+(b-'0')==10)
                  {
                          c='0';
                          a++;
                  }
                  else
                    c=(a-'0')+(b-'0')+'0';//感觉这样写麻烦,但别的都错了……
            }
            else//解决进位的算法
            {
                  c=(a-'0')+(b-'0')-10+'0';
                  j=((a-'0')+(b-'0'))/10;
                  a+=j;
          }
    }
    for(i=0;i<=n;i++)//算出到底到哪一位才开始有数字
    {
            if(c!='0')
            {
                  k=i;
                  break;
          }
           
    }
    for(i=k;i<n;i++)//输出结果
    {
   
            printf("%c",c);
           
    }
   

}

西蒙吹吹 发表于 2017-1-1 20:42:12

这是一个算加法功能的程序

西蒙吹吹 发表于 2017-1-1 20:43:24

为了能算超长度数字的运算,所以用字符来运算,毕竟int的大小是有限的

西蒙吹吹 发表于 2017-1-1 20:44:44

我在c-free上运行时结果是正确的,但提交到网上的时候就错误了……我在c-free上调试也没看出什么毛病来

西蒙吹吹 发表于 2017-1-1 20:45:17

求大神解答啊!!!!{:10_269:}{:10_269:}

人造人 发表于 2017-1-2 12:52:42

也许是因为
char a, b, c, ch, f, m;

解决这个问题最好使用栈

a17632 发表于 2017-1-23 03:04:05

for(i=0;i<=n;i++) 数组越界了吧

mhp0114 发表于 2017-2-4 14:34:01

for(i=0;i<=n;i++) 这个地方会越界 楼上对的

还有就是 加入输入是'a' 'b' ' c'等字符怎么办,好像没有判断

geekerr 发表于 2017-2-8 12:59:20

用编译软件
页: [1]
查看完整版本: 求大神帮我看看哪里错了