解题思路:这题我表示很疑惑。我看了几位大佬的题解,发现都是先从小到大排序再按要求输出的。。但是我觉得,这种思路存在漏洞,如果,最大值有好几个(或者说重复了呢)。那按题目要求不是要删去最大值再排序么?按照大佬的思路不是只能删去一个最大值而已?比较不解,望知道答案的道友私信我。。。


注意事项:

参考代码:(答案错误百分之五十的代码)

#include<stdio.h>
#define N 1100
int main()
{
 int a[N],b[N];
 int i,n,j,t,k,h;
 while(scanf("%d",&n)!=EOF)
 {
  for(i=0;i<n;i++)
   scanf("%d",&a[i]);
  if(n==1)
   printf("%d\n-1",a[0]);
  else
  {
   t=0;
   for(i=0;i<n;i++)
   {
    if(a[i]>a[t])
     t=i;
   }
   printf("%d\n",a[t]);
   for(i=0,j=0;i<n;i++)
   {
    if(a[i]!=a[t])
    {
     b[j]=a[i];
     j++;
    }
   }
   for(i=0;i<j-1;i++)
    for(k=0;k<j-1-i;k++)
    {
     if(b[k]>b[k+1])
     {
      h=b[k];
      b[k]=b[k+1];
      b[k+1]=h;
     }
    }
   for(i=0;i<j;i++)
    printf("%d ",b[i]);
  }
  printf("\n");
 }
 return 0;
}

 

0.0分

0 人评分

  评论区

  • «
  • »