Форум программистов, компьютерный форум CyberForum.ru

Удалить элементы в массиве. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с массивами.. http://www.cyberforum.ru/cpp-beginners/thread17707.html
Приветствую всех.. Задачка из разряда "на первый взгляд это просто": Задан массив из N элементов. Пользователь вводит N натуральных чисел. Программа должна определить элемент и шаг (step) так, что если проходить с элемента на элемент с определенной величиной шага,то получится последовательность возрастающих чисел. Наибольший шаг не превышает N-1 Определить начальный элемент(start) и шаг,...
C++ Кто сможет переписать?? Вообщем такая тема, надо готовую прогу от Борланд С++ Билдер, переписать в Визуал С++, кто смодет, плиззз, надо срочно, заранее спс http://www.cyberforum.ru/cpp-beginners/thread17688.html
C++ Проверка квадратной матрицы на симметричность
Помогите сделать программу, вот мой код: #include "stdafx.h" #include "stdio.h" #include "conio.h" int main() {int A,i,j,B,n; printf("Vvedite elementi massiva\n"); for (i=0;i<3;i++)
C++ Буквы
Пом. пож. посчитать и вывести сколько раз встречается в тексте каждая буква алфавита??? ((((
C++ Как сделать чтобы поток вызванный дочерним потоком не перебивался другими потоками? http://www.cyberforum.ru/cpp-beginners/thread17631.html
При вызове несколько раз подряд возможен перебив другими потоками.Как бы устранить?Я вот думаю что нужно повысить приоритет этого потока до уровня родительского окна.Только как?
C++ Функции в С++ задали задачку%Ввести натуральные числа N и M )до 6) Вычислить F=(M!+N!)*(M+N)! Вот что я сотворила: double f(int M, int N) {double p=1; for (int i=1;i<=6;i++) return p; } void __fastcall TForm1::Button1Click(TObject *Sender) { подробнее

Показать сообщение отдельно
SZ
2 / 2 / 0
Регистрация: 16.11.2008
Сообщений: 44
07.12.2008, 19:59     Удалить элементы в массиве.
Задача такова: "В неупорядоченном массиве K[m] есть совпадающие элементы. Из каждой группы одинаковых элементов оставить один, удалив остальные, и поджать к началу."
Я просмотрел другие форумы, как решается эта задача, и там одному, такому же как я, насоветовали отсортировать массив а затем пройтись по массиву, проверяя, не стоит ли за текущим элементов такой же, если нет, то скопировать элемент в новый массив, по завершению этого цикла использовать новый массив вместо старого. Хотя зачем сортировка не понимаю.
С сортировкой проблем не возникло. А со второй частью есть проблемы. Помогите улучшить код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<stdio.h>
void main()
{
    int i,j,x;
    int K[10]={1,24,4,6,24,6,24,45,12,321};
    int z=0,M[10];
             for(i=0;i<10;i++)
    {
      for(j=10-1;j>i;j--)
        {
          if(K[j-1]>K[j])
            {
              x=K[j-1]; K[j-1]=K[j]; K[j]=x;
            }
        }
    }
    printf("My selected array:\n");
    for(i=0;i<10;i++)
        printf("%d ",K[i]);
    printf("\n");
    for(i=0;i<10;i++)
    {
        if(K[i+1]!=K[i])
        {
            K[i+1]=M[z];
            z=z+1;
        }
    }
    printf("Result:\n");
    for(z=0;z<10;z++)
        printf("%d ",M[z]);
    printf("\n");
}
Выдает "мусор". У меня, правда, было чуток по-другому:
C++
1
2
3
4
5
6
7
8
9
        for(z=0;z<10;z++)
        {
        if(K[i]!=K[i+z])
        {
            K[i+1]=M[p];
            p=p+1;
        }
        }
    }
И если вместо '!=' ставил '==', то в результате выдавал вполне нормальный массив (из 6 и 24). Это логично. А так "мусор". И еще. Как делать не 10 чисел в массиве, а столько, сколько надо. В учебнике говорится, что надо просто поставить пустые [], но компилятор это не переваривает, требует размер массива. Я смотрел по примерам, так делают через директиву препроцессора #define. Но, по-моему, если это как константу брать, то мне уж легче задать ему самому размер.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru