Дан целочисленный одномерный массив. Определить количество его одинаковых элементов - C (СИ)
Формулировка задачи:
Ребятушки,миленькие помогите) задача: дан целочисленный одномерный массив. определить количество его одинаковых элементов.(элементы ввести с клавиатуры)
я решила сначала эту задачку так:
Преподаватель поставила мне минус так как в данном коде я считаю одинаковые элементы только те которые идут следом друг за другом. сказала так: используй брейк. запоминай на каком месте у тебя прозошло несовпадение и начинай с этих чисел,потому что предыдущие у тебя уже совпали зачем же их сравнивать еще раз. я переделала код но программа не работает а перпод сказала что неверно. помогите. вот мой второй код. я незнаю какой из них вернее.
то например ввела я склавиатуры такой набор 1213536331. результат должен показать что например 1-3штуки. 2-1штука и т.д.
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int a[10],i,k=0; for (i = 0; i<10; i++) { printf("\n a[%d]=", i+1); scanf("%d", &a[i]); } for(i=0; i<10;i++) if (a[i]==a[i+1]) k++; printf("%d", k); system ("PAUSE"); return 0; }
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int a[10],i,k,j, b[10]; for (i = 0; i<10; i++) { printf("\n a[%d]=", i+1); scanf("%d", &a[i]); } b[j]=a[i]; for (j=0;j<10;j++) k=0; { for(i=0; i<10;i++) if (b[j]!=a[i+1]) break; k++; printf("%d", k);} system ("PAUSE"); return 0; }
Решение задачи: «Дан целочисленный одномерный массив. Определить количество его одинаковых элементов»
textual
Листинг программы
#include <stdio.h> int main() { const int size = 10; int array[size]; int newArray[size]; int index = 0; int flag = 0; int i, j; int counter; for ( i = 0; i < size; i++ ) { printf("a[%d]=", i+1); scanf("%d", &array[i]); } for ( i = 0; i < size; i++ ) { for ( j = 0, flag = 0; j <= index; j++ ) { if ( newArray[j] == array[i] ) { flag = 1; } } if ( flag == 0 ) { newArray[index] = array[i]; for ( j = 0, counter = 0; j < size; j++ ) { if ( newArray[index] == array[j] ) { counter += 1; } } if ( counter > 1 ) { printf("%d = %d\n", newArray[index], counter); } index += 1; } } return 0; }
Объяснение кода листинга программы
Вывод кода на экран:
- Вводим значения массива a: a[1]=123 a[2]=456 a[3]=789 a[4]=123 a[5]=456 a[6]=789 a[7]=123 a[8]=456 a[9]=789 a[10]=123 a[11]=456 a[12]=789 a[13]=123 a[14]=456 a[15]=789 a[16]=123 a[17]=456 a[18]=789 a[19]=123 a[20]=456
- Выводим результат на экран: 123 = 3 456 = 3 789 = 3