客天恺_hqkcq 发表于 2019-4-13 16:27:51

一段计算减法的代码,哪里出错了呢?

这是计算两个100位以内的数字的减法,提交后系统说有错误,请问哪里错了呢?
#include<stdio.h>
#include<string.h>

int t;

void fun(char a[],int n,char b[],int m)
{
        int i,j;
        n--;m--;
        for(;n>=0;n--,m--)
        {
                if(m<0)
                {
                        t=a-'0';
                }
                else if(a>=b)
                        t=a-b;
                else
                {
                        t=10+a-b;
                        a--;
                }       
        }
}

void pr(int i,int n)
{
       
        for(;i<n;i++)
        {
                printf("%d",t);
        }
}

int main()
{
        char a,b;
       
        int i,j,k,n,m,s;
        scanf("%s",&a);
        scanf("%s",&b);
        n=strlen(a);
        m=strlen(b);
        if(n>m)
        {
                fun(a,n,b,m);
                for(i=0;i<=n&&t==0;i++);
                pr(i,n);
        }
        else if(n<m)
        {
                fun(b,m,a,n);
                for(i=0;i<=m&&t==0;i++);
                printf("-");
                pr(i,m);
        }
        else
        {
                for(i=0;i<n;i++)
                {
                        s=1;
                        if(a!=b)
                        {
                                s=0;
                                break;
                        }
                }
                if(s)
                {
                        printf("0");
                        return 0;
                }
                else if(a>b)
                {
                        fun(a,n,b,m);
                        for(i=0;i<=n&&t==0;i++);
                        pr(i,n);
                }
                else
                {
                        fun(b,m,a,n);
                        for(i=0;i<=m&&t==0;i++);
                        printf("-");
                        pr(i,m);       
                }
        }
}

jackz007 发表于 2019-4-13 16:36:31

   楼主想要得到什么,通过样例来具体说明,输入是什么,预期的输出应该是什么?

客天恺_hqkcq 发表于 2019-4-13 17:41:56

jackz007 发表于 2019-4-13 16:36
楼主想要得到什么,通过样例来具体说明,输入是什么,预期的输出应该是什么?

题目描述
计算A-B
其中A,B为正整数,无前导零(不保证A一定大于等于B。)
输入
第一行为数A,保证A的位数小于等于100。
第二行为数B,保证B的位数小于等于100。
输出
输出A-B。
输入样例
100000000000000000000
99999999999999999999
输出样例
1

Croper 发表于 2019-4-13 19:53:52

所以你自己运行过么,我觉得自己运行一遍应该能很明显地看出错误-

客天恺_hqkcq 发表于 2019-4-13 20:08:16

Croper 发表于 2019-4-13 19:53
所以你自己运行过么,我觉得自己运行一遍应该能很明显地看出错误-

运行过,我试的数据没有出错,求大佬指点

Croper 发表于 2019-4-13 20:54:52

客天恺_hqkcq 发表于 2019-4-13 20:08
运行过,我试的数据没有出错,求大佬指点

你试试100-1

客天恺_hqkcq 发表于 2019-4-13 21:28:16

Croper 发表于 2019-4-13 20:54
你试试100-1

谢谢,改了之后就过了,大佬有没有简单的方法,感觉我的方法好麻烦。还有能看下隔壁那个求N元方程的题吗,那个我是一点都不会。谢谢了
页: [1]
查看完整版本: 一段计算减法的代码,哪里出错了呢?