Frank Tocci
Frank Tocci

Reputation: 634

program not storing/returning array properly

I am trying to write a simple program that stores an array and then returns it. However, it is not returning all of the numbers correctly, specifically toward the end of the array. Here is an example of the output:

Please enter number of numbers
5
Please enter number 1
2
Please enter number 2
3
Please enter number 3
5
Please enter number 4
6
Please enter number 5
7
Number 1 is 2
Number 2 is 3
Number 3 is 5
Number 4 is 14
Number 5 is 1
logout

[Process completed]

and here is my code:

#include <stdio.h>

int main (void) {
    int i, num;
    int x[num];

    printf("Please enter number of numbers\n");
    scanf("%d",&num);

    for (i = 0; i < num; i++) {
        printf("Please enter number %d\n", i + 1);
        scanf("%d",&x[i]);
    }
    for (i = 0; i < num; i++) {
        printf("Number %d is %d\n", i + 1, x[i]);
    }

    return 0;
}

Upvotes: 0

Views: 44

Answers (2)

Pankaj Andhale
Pankaj Andhale

Reputation: 403

I think You should initialise the num variable so that it will not be having the garbage values initially..

Upvotes: 2

Srinath Mandava
Srinath Mandava

Reputation: 3462

Before scanning num you are doing int x[num] and as num stores garbage value you aren't getting the correct output.

int main (void) {
    int i, num;
   // int x[num]; // num is not defined here

    printf("Please enter number of numbers\n");
    scanf("%d",&num);
     int x[num];

    for (i = 0; i < num; i++) {
        printf("Please enter number %d\n", i + 1);
        scanf("%d",&x[i]);
    }
    for (i = 0; i < num; i++) {
        printf("Number %d is %d\n", i + 1, x[i]);
    }

    return 0;
}

Upvotes: 2

Related Questions