鱼C论坛

 找回密码
 立即注册
查看: 2638|回复: 8

求大神帮我看看哪里错了

[复制链接]
发表于 2017-1-1 20:41:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-1-1 20:42:12 | 显示全部楼层
这是一个算加法功能的程序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-1 20:43:24 | 显示全部楼层
为了能算超长度数字的运算,所以用字符来运算,毕竟int的大小是有限的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-1 20:44:44 | 显示全部楼层
我在c-free上运行时结果是正确的,但提交到网上的时候就错误了……我在c-free上调试也没看出什么毛病来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-1 20:45:17 | 显示全部楼层
求大神解答啊!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-2 12:52:42 | 显示全部楼层
也许是因为
char a[n], b[n], c[n], ch, f, m;

解决这个问题最好使用栈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-23 03:04:05 From FishC Mobile | 显示全部楼层
for(i=0;i<=n;i++) 数组越界了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-4 14:34:01 | 显示全部楼层
for(i=0;i<=n;i++) 这个地方会越界 楼上对的

还有就是 加入输入是'a' 'b' ' c'等字符怎么办,好像没有判断
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-8 12:59:20 | 显示全部楼层
用编译软件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 08:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表