蒟蒻读题有问题,关于题目
查看原帖
蒟蒻读题有问题,关于题目
386531
JacobBlack楼主2020/9/20 17:08

题目就是最长连号,但是由于输入数据给的不太好就导致第一次只拿了60分


以下是第一次代码

#include<stdio.h>
int main()
{
  int n,a[2000]={0},i,j,x,y=0,max=0;
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  {
    scanf("%d",&x);
    a[x]=1;
    if(x>max) max=x;
  }
  for(i=1;i<=max;i++)
  {
    x=0;
    if(a[i]==1)
    for(j=i;;j++)
  {
    if(a[j]==1) x++;
    else break;
  }
  if(x>y) y=x;
  }
  printf("%d",y); 
  return 0;
}

说白了就是对输入的n个数据排列以后再求最长连号
没错,对于输入数据它是成立的,60分以后惶恐,查了很久的错,最后还是下载的3号数据发现的问题


3号数据如下:输入:12 3 5 6 7 8 2 3 4 5 6 8 9,输出:5。看到这组数据应该就很能说明问题了!!!


没错,题目指的是不排列情况下的最长连号
以下是第二次代码

#include<stdio.h>
int main()
{
  int n,a[2000]={0},i,j,x,y=0,max=0;
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  scanf("%d",&a[i]);
  for(i=1;i<=n;i++)
  {
    x=1;
    for(j=i+1;;j++)
    {
      if(a[j]==a[j-1]+1) x++;
      else break;
    }
    if(x>y) y=x;
  }
  printf("%d",y); 
  return 0;
}

果然没文化已经连题目都看不懂了吗\颤抖

2020/9/20 17:08
加载中...