Я с трудом с упражнениями, который выглядит следующим образом:Поиск массива в C
написать программу, которая подсчитывает количество вхождений каждого различного числа в массиве. Целые числа между 0 - 9. Возьмите этот массив в качестве примера:
int numbers[] = {1, 5, 4, 7, 1, 4, 1, 7, 5, 5, 3, 1};
создать указатель, который указывает на первый элемент массива. Пронумеруйте массив и подсчитайте количество появлений остроконечного числа. После того, как вы подсчитали количество появлений числа 1, указатель укажет на число 5. подсчитайте количество видимых чисел 5 и так далее. После того, как вы зациклировали пару раз, и указатель снова указывает на 1 (элемент 4 массива), программа может не засчитывать 1 снова, поэтому вам нужно сохранить счет где-то из числа, которое вы уже подсчитали.
Вывод должен выглядеть примерно так:
Количество появлений 1 является: 4
Количество появлений 3 является: 1
Количество появлений от 4: 2
Количество выступлений 5: 3
Количество появлений 7 лет: 2
код у меня теперь считается появление каждого элемента:
int main()
{
int getallen[] = {1, 5, 4, 7, 1, 4, 1, 7, 5, 5, 3, 1};
int i , j, *aimedNumber, appearance = 0, arraySize = sizeof(getallen)/sizeof(int);
for(i=0;i<arraySize;i++)
{
aimedNumber = getallen[i]; // every loop, the pointer points to the next element
for(j=0; j<arraySize; j++) // loops through the array comparing the pointer
{
if(getallen[j]==aimedNumber) // if the element of the array == pointer
{
appearance++; // +1 to the appearance
}
}
printf("the appearance of %i in the array is: %i\n", aimedNumber, appearance);
appearance = 0; // after checking the appearance of the pointed number...
} // reset the appearance variable
return 0;
}
Но мне еще нужно что-то, что проверяет, является ли я уже подсчитал число, и если бы я это сделал, убедитесь, что число не будет подсчитано снова.
Заранее благодарен!
, если вы можете использовать набор, то ваша проблема решается, но это stl и C++ – macroland
. Ваш внешний цикл должен пробегать все возможные числа, т. е. от 0 до 9 в вашем случае, а 'aimNumber' - equla to'i'. (Конечно, если вы знаете диапазон возможных значений, вы можете пройти внутренний цикл только один раз и заполнить массив счетчиков для каждого номера от 0 до 9.) –
В чем проблема? – Roushan45