This will work for you. Code is a bit tacky but you'll get the idea
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int convert (char * input, int * number){
int result = 0 ;
int i ;
for (i = 0; i < strlen(input) && result == 0; i++) {
if (!isdigit(input[i])) {
result = -1 ;
}
}
if (result == 0) {
sscanf(input, "%d", number);
}
return result ;
}
int input_array(int a[], int n){
int i;
int j;
int len = 30 ;
char value[len] ;
for (i = 0; i < n ; i++) {
fgets(value, len, stdin) ;
// get rid of cr/lfs
for (j = 0; j < strlen(value); j++){
switch (value[j]) {
case '\r' :
case '\n' :
value[j] = 0 ;
break ;
}
}
if (strlen (value) == 0) return i ; // return number of entries
if (convert(value, &a[i]) == -1) {
return -1 ;
}
}
return (n) ;
}
int main(){
int arr[6] ;
int entries ;
entries = input_array (arr, 6) ;
if (entries <= 0) {
printf ("Bad data entered\n") ;
}
}