Question discussion

Which of the following statements are correct about the program below?#includevoid main(){ int size, i; scanf("%d", &size); int arr[size];…

284883Medium 1 reply 529 views
0
Which of the following statements are correct about the program below?#include<stdio.h>void main(){ int size, i; scanf("%d", &size); int arr[size]; for(i=1; i<=size; i++) { scanf("%d", arr[i]); printf("%d", arr[i]); }}
  • AThe code is erroneous since the statement declaring array is invalid.
  • BThe code is erroneous since the subscript for array used in for loop is in the range 1 to size.
  • CThe code is correct and runs successfully.
  • DThe code is erroneous since the values of array are getting scanned through the loop.
  • ENone of these
Correct answer: A

Discussion 1

0
CCommunity
The code is erroneous since the statement declaring array is invalid.

The statement int arr[size]; produces an error, because we cannot initialize the size of array dynamically. Constant expression is required here.
Example: int arr[10];
One more point is there, that is, usually declaration is not allowed after calling any function in a current block of code. In the given program the declaration int arr[10]; is placed after a function call scanf().