QUESTION
Given an unsorted array of size n. Array elements are in range from 1 to n. One number ‘A’ from set {1, 2, n} is missing and one number ‘B’ occurs twice in array. Find these two numbers.\nNote: If you find multiple answers then print the Smallest number found.\n\nInput:\n\nThe first line of input contains an integer T denoting the number of test cases. The description of T test cases follows.\nThe first line of each test case contains a single integer N denoting the size of array.\nThe second line contains N space-separated integers A1, A2, …, AN denoting the elements of the array.\n\n\nOutput:\n\nPrint B, the repeating number followed by A which is missing in a single line.\n\n\nConstraints:\n\n1 T 40\n1 N 100\n1 A[i] N.
“TESTCASE_1”: “2\n2\n2 2\n3 \n1 3 3\n###—###SEPERATOR—###—\n2 1\n3 2”, “TESTCASE_2”: “2\n2\n1 1\n2\n4 4\n###—###SEPERATOR—###—\n1 2\n1 2”, “TESTCASE_3”: “0\n###—###SEPERATOR—###—\n0”, “TESTCASE_4”: “0\n###—###SEPERATOR—###—\n0”, “TESTCASE_5”: “0\n###—###SEPERATOR—###—\n0
ANSWER
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
//code
int t;
scanf("%d",&t);
while(t--)
{
int n,k,on,tw,i;
scanf("%d",&n);
int a[n+1];
memset(a,0,(n+1)*sizeof(int));
for(i=0;i<n;i++)
{
scanf("%d",&k);
a[k]++;
}
for(i=1;i<=n;i++)
{
if(a[i]==0)
{
on=i;
}
else if(a[i]==2)
{
tw=i;
}
}
printf("%d %d\n",tw,on);
}
return 0;
}