Your two functions both find the same minimum. The minimum could also occur several times with different indices. Here it is not clear whether the value or the index should be searched or compared. To avoid searching the same minimum twice it would be necessary to tell the function findMin2() which min it should not find. I would return the index then you can implement both. The main program would look like this:
int main() {
int a[] = { 9,8,7,3,-3,1,5,2,-8,6,4 };
size_t n = sizeof(a) / sizeof(a[0]);
unsigned min = findMin(a, n);
unsigned min2 = findMin2(a, n, min);
printf("\n%d, %d\n", a[min], a[min2]);
return 0;
}
In Function findMin2() you can do this:
int min2 = 0;
if (n < 2) return 0; if (min1 == 0) min2++;
and in loop:
if (x[min2] > x[i] && (i != min1)) { ..