У меня есть еще одна ошибка во время выполнения, в том, что, кажется, найдено (a, размер, значение) функции Если найденное находит значение, оно возвращает i, если ничего не находит, возвращает -1, а while (1) {должно прерваться, но это не так, и код выполняется вечно.
#include <stdio.h>
#include <time.h>
#include<stdlib.h>
int uniqueRand (int a[], int size);
int found (int a[], int size, int value);
int main (){
int size, guesses;
printf ("Number of digits?: ");
scanf ("%d", &size);
int a[size];
printf ("\nNumber of guesses?: \n");
scanf ("%d", &guesses);
uniqueRand (a,size);
//Generate Random Array Callout
for(int i=0;i<size;i++){
printf ("%d",a[i]);
//Print Answer Code
}
}
int uniqueRand (int a[], int size){
//Generate Random Array Function
int value;
srand(time(NULL));
for (int i = 0; i < size; i++){
if (i == 0){
a[0] = rand () % 8 + 1;
}
else
{
while (1){
a[i] = rand () % 8 + 1;
value = a[i]; //value to check for
found (a,size,value);
//Checks to see if value is in a[] already, if true then redo
if (found(a,size,value) == -1)
//If -1 return, number is unique, break
break;
}
}
}
return a[size];
}
int found (int a[], int size, int value){
for(int i=0;i<size;i++){
if (a[i] == value) //checks if value is in a[i]
return i; //if yes, returns positive number
}
return -1; //return -1 if unique
}