Skip to main content

Arrays/Vectors

Taking Input in Arrays

Remember Kirti, Jubin, and Riya's example? If not then let me state it again.

Suppose there are 3 students: Riya, Jubin and Kirti. We need to write a program to input their marks and print their average. From what we have studied so far, we know that we can create an array of size 3 that'll store their marks. But who'll provide the marks?? Hence, we need to take input from the users themselves.

This is what we'll study in this article: How to take input from the user for the values of the array elements.

Example

Let's see now how to take inputs from the user:

Problem Statement

Create an array of size 5, take its elements as input from the user, and print the array elements.

Input

Enter the first element: 15
Enter the second element: 25
Enter the third element: 35
Enter the fourth element: 45
Enter the fifth element: 55

Code

#include <iostream>
using namespace std;
 
int main() {
 
    // declare an array
    int arr[5];
 
    cout << "Enter the first element: ";
    cin >> arr[0];
 
    cout << "Enter the second element: ";
    cin >> arr[1];
  
    cout << "Enter the third element: ";
    cin >> arr[2];
 
    cout << "Enter the fourth element: ";
    cin >> arr[3];
 
    cout << "Enter the fifth element: ";
    cin >> arr[4];
  
    cout << "Array Elements:" << endl;
 
    // access array using loop
    for (int i = 0; i < 5; ++i) {
        cout << arr[i] << endl;
    }
 
    return 0;
}

Output

Enter the first element: 15
Enter the second element: 25
Enter the third element: 35
Enter the fourth element: 45
Enter the fifth element: 55
Array Elements:
15
25
35
45
55

In this case, arr[index] acts as separate variables for which we take inputs separately and then print them using a for loop. But can we use a loop to take inputs just like we did while printing outputs? Yes!

Taking array inputs using loop

Let's see the same example, but we'll take inputs using a loop this time.

Input

Enter the first element: 15
Enter the second element: 25
Enter the third element: 35
Enter the fourth element: 45
Enter the fifth element: 55

Code

#include <iostream>
using namespace std;
 
int main() {
 
    // declare an array
    int arr[5];
 
    cout << "Enter array elements:" << endl;
 
    for (int index = 0; index < 5; ++index) {
        cin >> arr[index];
    }
 
    cout << "Array Elements:" << endl;
 
    // access array using loop
    for (int index = 0; index < 5; ++index) {
        cout << arr[index] << endl;
    }
 
    return 0;
}

Output

Enter array elements:
15
25
35
45
55
Array Elements:
15
25
35
45
55

Problem

Now let's solve the initial problem that we discussed else the students might get sad : (

Problem Statement

Suppose there are n students. Write a C++ program to input their marks and print their average using a marks array.

Input

No. of students = 3
Marks of student 1 = 89
Marks of student 2 = 67
Marks of student 3 = 95

Output

Average marks: 83.6667

Try it yourself

Hint

Create an array of size '3' and data type 'double' as marks or their average could be in decimals as well.

Solution
#include <iostream>
using namespace std;

int main() {
 
    int n;  // Number of students
	cout << "Enter the no. of students: " << endl;
    cin >> n;   // Input Number of students
    double marks[n];  // Array to store marks of n students

    // Input marks for each student
    for (int i = 0; i < n; i++) {
        cout << "Enter marks for student " << i + 1 << ": " << endl;
        cin >> marks[i];
    }

    // Calculate the average
    double sum = 0;
    for (int i = 0; i < n; i++) {
        sum += marks[i];
    }
    double average = sum / n;

    // Print the average marks
    cout << "Average marks: " << average << endl;

    return 0;
}

Going great coders! Just keep revising the array concepts and we'll meet in the next article for more new topics : )