Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2016, 18:09   #1
davidblane667
Новичок
Джуниор
 
Регистрация: 14.11.2016
Сообщений: 1
Восклицание Массивы

Ребята, помогите, бьюсь уже которую неделю.
"Дан целочисленный массив размера N. Удалить из массива все элементы, встречающиеся менее трех раз, и вывести размер полученного массива и его содержимое."
Нашел пример в паскале, попробовал перевести в с++, но, вероятно, получился бред, прога зацикливается на строчке "else i=i+1;".
Вот сам код:
#include "stdafx.h"
#include "iostream"
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{setlocale(LC_ALL , "Russian");
int n,i,j,k,p,x;
cout << "Введите количество элементов " ;
cin >> n;
int a[10]; // Массив элементов
cout << "Введите массив:" << endl;
for (int i = 0; i < n; i++)
cin >> a[10];
do {
p=0;x=a[i];
for (int j = 0; j < n{
if (a[j]=x)
p=p+1;
if (p<3){
j=i;
do{
if (a[j]=x){
for(k=j;k<n-1{
a[k]=a[k+1];
n=n-1;
}
}else j=j+1;

}
while (j<=n);}
else i=i+1; }
}
while (i<=n) ;
if (n=0)
cout<<"Все элементы удалены";
else{
cout<<"Новый размер массива : "<<n;
cout<<"Массив после сжатия : "<<endl;
for (int i = 0; i < n; i++)
cout << i << ") " << a[i] << endl;

}
system ("pause");
}
davidblane667 вне форума Ответить с цитированием
Старый 15.11.2016, 18:41   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Проверяй внимательней. Должен работать.
Код:
#include <iostream>

using namespace std;

int main() {
    const int THREE = 3;
    int N;
    int SIZE = 0;

    cout << "Введите количество элементов: ";
    cin >> N;

    int inArray[N];
    int outArray[N];

    cout << "Заполнение массива:" << endl;
    for (int i = 0; i < N; i++) {
        cout << "[" << i << "] - ";
        cin >> inArray[i];
    }

    for (int i = 0; i < N; i++) {
        int count = 0;
        for (int j = i; j < N; j++) {
            if (inArray[i] == inArray[j]) {
                count++;
            }
            if (count == THREE) {
                outArray[SIZE++] = inArray[i];
                break;
            }
        }
    }
    
    if (SIZE > 0) {
        cout << "Заполнение массива:" << endl;
        for (int i = 0; i < SIZE; i++) {
            cout << " [" << outArray[i] << "]";
        }
    } else {
        cout << "Значения в массиве не найдены!!!" << endl;
    }
    return 0;
}
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать программу массивы (C++) - Даны два массива, скопировать эти массивы в 3-й результирующий (размером 10 элементов) так, что Саша1990 Помощь студентам 1 02.02.2015 16:03
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Двумерные массивы(массивы указателей на массивы) krytishka99 Помощь студентам 1 29.12.2011 19:51
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12