Hi
i was following a tutorial but i stuck at something i don't understand it
This is to find out how many times a number appeered inside an array

sorry for my English

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    const int size = 5;
    int arr[size] = { 0, 0, 0, 0, 0 };
    int num[size] = { 1, 4, 5, 1, 4 };
    for (int i = 0; i < size; ++i)
    {
        arr[num[i]] += 1; //I don't understand this part, doesn't this suppossed to to increase each value in arr[5] by 1?
    }
    for (int i = 0; i < size; ++i)
    {
        cout << i << ": " << arr[i] << endl;
    }
    _getch();
    return 0;
}

Recommended Answers

All 3 Replies

When i is 0, we get arr[num[0]] += 1. num[0] is 1, so we get arr[1] += 1. By the same logic we get arr[4] += 1 when i is 1 and so on.

So no, it doesn't increase each element of arr by 1. Rather it increases each element in arr once for each time its index appears in num. So for example arr[1] is incremented twice because 1 appears twice in num and arr[0] is never increment because there is 0 in num.

Also, 5 is never counted because arr[5] is out of bounds.

commented: Seems like I missed the point of the question. +6

Thanks for the quick answer guys

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.