计算结果明明正确为什么只有10分啊
查看原帖
计算结果明明正确为什么只有10分啊
1139581
Wi1l_楼主2023/10/11 20:29
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
using namespace std;
char str1[10090],str2[10090],str3[10090];
int a[10090],b[10090],c[10090];
bool compare(char a[],char b[] );
int main()
{
    scanf("%s",str1);
    scanf("%s",str2);
    int len1=strlen(str1),len2=strlen(str2);
    if (!compare(str1,str2) )
    { 
        strcpy(str3,str1);
        strcpy(str1,str2);
        strcpy(str2,str3);
        cout<<"-";
    }
    for (int i=0;i<len1;i++)
        a[len1-i]=str1[i]-'0';
    for (int i=0;i<len2;i++)
        b[len2-i]=str2[i]-'0';
    for (int i=1;i<len1+1;i++)
    {
        if (a[i]<b[i])
        {
            a[i]=a[i]+10;
            a[i-1]=a[i-1]-1;
        }
        c[i]=a[i]-b[i];
    }
    while (c[len1]==0&&len1>1) len1--;
    for (int i=len1;i>0;i--)
        cout<<c[i];
}
bool compare(char a[],char b[] )
{
    int u,v;
    u=strlen(a);
    v=strlen(b);
    if (u!=v) return u>v;
    for (int i=0;i<=u;i++) 
        if(a[i]!=b[i]) return a[i]>b[i];
    return true;
}

纯编程小白,以上是源码 只能通过#6测试点,求大佬指点

2023/10/11 20:29
加载中...