有点奇怪
查看原帖
有点奇怪
1077683
Mostly_Harmless楼主2023/11/21 01:10
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
// 高精度

typedef struct 
{
    int rank;
    char num[110];
    int length;
}
people;

people s[30];
int Max_length;
int which_max_length;

int cnt = -1;

int main()
{
    int n;
    scanf("%d", &n);
    getchar();
    for (int i = 0; i < n; i++)
    {
        s[i].rank = i + 1;
        fgets(s[i].num, 110, stdin);
        s[i].length = strlen(s[i].num);
    }
    Max_length = s[0].length;
    which_max_length = 0;
    for (int i = 1; i < n; i++)
    {
        if (s[i].length > Max_length)
        {
            Max_length = s[i].length;
            which_max_length = i;
        }else if (s[i].length == Max_length)
        {
            for (int j = 0; j < Max_length; j++)
            {
                if (s[i].num[j] > s[which_max_length].num[j])
                {
                    which_max_length = i;
                    break;
                }else if (s[i].num[j] < s[which_max_length].num[j])
                {
                    break;
                }
            }
        }
    }
    
    printf("%d\n%s\n",s[which_max_length].rank, s[which_max_length].num);
    return 0;
}
// Writen by Mostly_Hamrless    

rank那里,如果+1,可以过样例,但会爆0;如果不+1,样例过不去,但是能80,#5过不去,很神奇,感觉思路是正确的啊

2023/11/21 01:10
加载中...