TheXxuan 2021-04-30 02:12 采纳率: 66.7%
浏览 508
已采纳

PTA-验证是否有重复数据

由于这题的PTA没有测试点,我也不知道错哪里了,希望由大佬能指正(我感觉答案没问题,但是提交显示的是答案错误,而不是时间超时)

下边附上源码

 

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int n,i,j,judge;
    scanf("%d",&n);
    int a[n];
    int *p=a;
    for(i=0;i<n;i++)
    scanf("%d",&a[i]);
    void quickSort(int *arr,int begin,int end);
    quickSort(p,0,n-1);
    for(i=0;i<n-1;i++)
    {
        j=i+1;
        if(a[i]==a[j])
        {
            judge=1;
            break;
        }
        else judge=0;
    }
    if(judge==0)
    printf("No");
    else printf("Yes");
    system("pause ");
    return 0;
}

void quickSort(int *arr,int begin,int end)
{
	if(begin < end)
	{
		int temp = arr[begin]; 
		int i = begin; 
		int j = end;
		while(i < j)
		{
			
			while(i<j && arr[j] > temp)
				j--;
			arr[i] = arr[j];
			while(i<j && arr[i] <= temp)
				i++;
			arr[j] = arr[i];
		}
		arr[i] = temp;
		quickSort(arr,begin,i-1);
		quickSort(arr,i+1,end);
	}
}

(不是system("pause ")的原因。)

  • 写回答

4条回答 默认 最新

  • 关注

    程序应该是正常的,

    是不是输出的“YES”和“NO”要全大写

        if(judge==0)

            printf("NO");

        else

            printf("YES");

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?