Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Input several numbers from array and each one number check for integer or not

Tags:

arrays

c

integer

everyone! I hope someone can help me figure out something in C language. This is my first seriously homework in IT, I have no experience and I'm learning in e-studies, so teacher help isn't very available.

I need to develop console application in C language. User need to input 10 integer numbers, if insert number isn't integer, need to output error and again re-enter new number until all 10 integer numbers will be inserted.

Everything works in case if I say that these 10 numbers can't be 0 (I make this to be sure that my if-else statement working), but won't work when I want that every input number will be check if it is integer or not.

How can I do it right.

Please help

so far my code look like this:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i;
    float f;
    int numbers[10];

    for (i = 0; i < 10; i++)
    {
        scanf ("%d", &numbers[i]);
        if (numbers[i] != 0)
        {
            scanf ("*%d", &numbers[i]);
        }
        else
        {
            printf ("\nError!Entered number is't integer \n");
            printf ("\nPlease insert number again \n");
            scanf("%*d", &numbers[i]);
        }

    }

}
like image 316
effeja Avatar asked Dec 03 '25 01:12

effeja


1 Answers

#include <stdio.h>

int main(void) {
    int i = 0;
    int val;
    char ch;
    int numbers[10];

    while(i < 10) {
        val = scanf("%d", numbers + i);  // read the integer into a[i]
        if(val != 1) {
            while((ch = getchar()) != '\n')  // discard the invalid input
                ;  // the null statement
            printf("Error! Entered number is not an integer.\n");
            printf("Please enter an integer again.\n");
            val = scanf("%d", numbers + i);
            continue;
        }
        ++i;
    }
    // process the numbers array
    return 0;
}

I write this line again

val = scanf("%d", numbers + i);

Now it works how I need. Great - thanks a lot

like image 57
effeja Avatar answered Dec 05 '25 14:12

effeja



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!