Reputation: 634
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
Reputation: 403
I think You should initialise the num variable so that it will not be having the garbage values initially..
Upvotes: 2
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