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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2010, 10:13   #1
Lerank
Пользователь
 
Регистрация: 30.11.2008
Сообщений: 18
По умолчанию Массив с повторениями (С)

Помогите пожалуйста с куском программы, а то никак додуматься не могу. Вот например есть масив mas1[11]={1,3,7,3,3,4,4,4,4,7,7}, надо сделать так, чтобы в масив mas2 записывались числа из масива mas1 с повторениями,то есть например содержимое mas2 при таком содержимом mas1 будет mas2[n]={1,0,3,0,7,0,3,2,4,4,7,2} mas2 должен быть типа char.
Программу надо на С, элементы С++ не подойдут.
Заранее спасибо.
Lerank вне форума Ответить с цитированием
Старый 08.10.2010, 15:37   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

Цитата:
mas1[11]={1,3,7,3,3,4,4,4,4,7,7}
на каком основании получится такое
Цитата:
mas2[n]={1,0,3,0,7,0,3,2,4,4,7,2}
???

хотя бы на словах объясните, а закодить поможем


аааааа, всё понял, так а почему 0 то? раз троек одна - значит 1 должно стоять или тогда вместо 4 у четверок должно быть 3

написал специально на С++, чтобы не было соблазна копипаста, переписать его на С не составит труда, имхо )))

Код:
#include <iostream>

using namespace std;


int *SetArr(int *p, int Size, int &NewSize) {
  int tmp, j = 1, c = 0;
  int *a = new int [Size + Size];
  tmp = p[0];
  for (int i = 1; i < Size; i++) {
    if (tmp == p[i]) {
      j++;
    }
    else {
      a[c++] = tmp;
      a[c++] = j;
      j = 1;
      tmp = p[i];
    }
  }
  a[c++] = tmp;
  a[c++] = j;
  NewSize = c;
  return a;
}

int main(void) {
  const int N = 11;
  int NewN;
  int mas[N] = {1,1,7,3,3,4,4,4,4,7,7};
  int *g;
  g = SetArr(mas, N, NewN);
  for (int i = 0; i < NewN; i++) {
    cout << g[i] << " ";
  }
  cout << endl;
  delete [] g;
  system("pause");
  return 0;
};
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]

Последний раз редактировалось Stilet; 08.10.2010 в 20:13.
RUSt88 вне форума Ответить с цитированием
Старый 08.10.2010, 17:31   #3
Lerank
Пользователь
 
Регистрация: 30.11.2008
Сообщений: 18
По умолчанию

ладно спасибо перепишу на С)

Цитата:
Сообщение от RUSt88 Посмотреть сообщение
аааааа, всё понял, так а почему 0 то? раз троек одна - значит 1 должно стоять или тогда вместо 4 у четверок должно быть 3
0 это имеется ввиду сколько раз эта цифра повторяется.
Повторения считываются не со всего массива, а только вот встретились например подряд четыре единицы,а за ними например уже другая цифра, он сразу преобразовал их в 1 4 потом другие повторения рассматривает.

Последний раз редактировалось Stilet; 08.10.2010 в 20:13.
Lerank вне форума Ответить с цитированием
Старый 08.10.2010, 19:27   #4
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

получилось переписать? если нет, обращайся
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 08.10.2010, 22:24   #5
Lerank
Пользователь
 
Регистрация: 30.11.2008
Сообщений: 18
По умолчанию

Код:
system("pause");};
а что это за строчка,а то компилятор ругался на нее, я ее убрал и все заработало)
Lerank вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив , двухмерный массив Woxx Паскаль, Turbo Pascal, PascalABC.NET 0 10.09.2010 09:28
Массив в dll - как разместить массив в dll и как вызвать элемент этого массива по индексу? Кинельски Помощь студентам 0 23.05.2010 20:52
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06