狛 枝 凪 斗 2021-08-07 20:25 采纳率: 80%
浏览 61
已结题

C++ 大数排序问题 请问我的代码错在哪里?

题干:

img

我的代码:

#include<iostream>
#include<cstdio>
#include<string.h>
#include<cstring>
#include<algorithm>

using namespace std;

struct bign{
    int length;
    int d[1001];
    bign(){
        memset(d,0,sizeof(d));
        length=0;
    }
}N[101];

bool cmp(struct bign a,struct bign b){
    if(a.length>b.length){
        return 0;
    }else if(a.length<b.length){
        return 1;
    }else{
        int i;
        for(i=a.length-1;i>=0;i--){
            if(a.d[i]<b.d[i]){
                return 1;
            }else if(a.d[i]>b.d[i]){
                return 0;
            }
        }
    }
}

int main(){
    int n;
    int j;
    while(scanf("%d",&n)!=EOF){
        int i;
        for(i=0;i<n;i++){
            char c[1002];
            scanf("%s",c);
            for(j=strlen(c)-1;j>=0;j--){
                N[i].d[j]=c[strlen(c)-j-1]-'0';
                N[i].length++;
            }

        }
        sort(N,N+n,cmp);
        for(j=0;j<n;j++){
            for(i=N[j].length-1;i>=0;i--){
                printf("%d",N[j].d[i]);
            }
            printf("\n");
        }
    }
    return 0;
}


OJ网站给我的报错是
img
请问我的代码错在哪里?

  • 写回答

2条回答 默认 最新

  • qzjhjxj 2021-08-07 23:00
    关注

    在第40行和41行之间,这么改下试试:

    for(i=0;i<n;i++){
                N[i].length = 0;
                char c[1002];
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月17日
  • 已采纳回答 8月9日
  • 创建了问题 8月7日

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog