输入n(n<=50000)个1~10^6的正整数,求最先出现重复数字的数的一对位置。
输入格式:
第一行,一个整数n;
第二行,n个整数。
输出格式:
最先出现重复数字的起始位置。
输入样例:
10
23 4 2 10 5 6 7 8 2 6
输出样例:
3 9(最先出现重复的是数字2)
输入n(n<=50000)个1~10^6的正整数,求最先出现重复数字的数的一对位置。
输入格式:
第一行,一个整数n;
第二行,n个整数。
输出格式:
最先出现重复数字的起始位置。
输入样例:
10
23 4 2 10 5 6 7 8 2 6
输出样例:
3 9(最先出现重复的是数字2)
代码如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i,j;
int* a;
int pos1 = -1,pos2 = -1;
printf("请输入n的值:");
scanf("%d",&n);
a = (int*)malloc(sizeof(int)*n);
for (i =0;i<n;i++)
{
scanf("%d",a+i);
if(i>1 && pos1 == -1 && pos2 == -1)
{
for (j = 0;j<i;j++)
{
if(*(a+j) == *(a+i))
{
pos1 = j;
pos2 = i;
}
}
}
}
printf("%d %d\n",pos1+1,pos2+1);
free(a);
return 0;
}