7 / 7 / 0
Регистрация: 14.11.2014
Сообщений: 166
|
|
1 | |
Перезаписать числа06.02.2016, 19:51. Показов 2725. Ответов 4
Метки нет (Все метки)
Сама задача:
Вася написал на бумажке последовательность натуральных чисел и стал диктовать её Пете. Причём, для краткости, он диктует её так: сначала говорит количество подряд идущих одинаковых чисел, а затем говорит, что это за числа. Например, последовательность «1 1 2 3 3 3 10 10» он продиктует как «две единицы, одна двойка, три тройки, две десятки». Петя же, тоже для краткости, записывает вместо слов числа, которые говорит Вася. В указанном примере Петя запишет на бумажку: «2 1 1 2 3 3 2 10». Отработав этот навык, друзья решили ещё потренироваться в программировании и научить компьютер преобразовывать последовательность Васи в последовательность Пети. Исходные данные В первой строке находится целое число N — количество чисел, записанных Васей (1 ≤ N ≤ 1000). Во второй строке через пробел записаны эти числа. Все числа целые, положительные и не превосходят 10. Результат В единственной строке выведите через пробел числа, которые должен был бы записать на бумажке Петя. Поясните пожалуйста! Разве так нельзя делать?? И как вывести в одну строку?? Например: Вводим 8 1 1 2 3 3 3 10 10 Должны получить: 2 1 1 2 3 3 2 10 Моё решение: Код
[CPP]#define _CRT_SECURE_NO_DEPRECATE #include <iostream> using namespace std; using std::cout; using std::endl; int main() { int num; // размер массива cout << "Enter integer value: "; int k = 0; cin >> num; // получение от пользователя размера массива int *d_darr = new int[num]; int *p_darr = new int[num]; // Выделение памяти для массива for (int i = 0; i < num; i++) { // Заполнение массива и вывод значений его элементов int v1; scanf("%d", &v1); p_darr[i] = v1; } int j = 0; for (int i = 1; i < num; i++) { if (p_darr[i-1] == p_darr[i]){ k = k++; } else { d_darr[j] = k; d_darr[j+1] = p_darr[i-1]; j=j++; } } for (int i = 0; i < num; i++){ cout << d_darr[i] << endl; } delete [] p_darr; // очистка памяти return 0; }[/CPP]
0
|
06.02.2016, 19:51 | |
Ответы с готовыми решениями:
4
перезаписать в новый файл нечетные числа Как перезаписать файл? Как перезаписать файл? Перезаписать массив со сдвигом влево |
62 / 62 / 55
Регистрация: 18.10.2014
Сообщений: 190
|
||||||
06.02.2016, 23:00 | 2 | |||||
Сообщение было отмечено Asya_inter как решение
Решение
1
|
7 / 7 / 0
Регистрация: 14.11.2014
Сообщений: 166
|
|
06.02.2016, 23:52 [ТС] | 3 |
спасибо! Стало многое понятнее. Но дело немного по другому обстоит. Нужно именно в том порядке и записывать без повторений. После исправления получилось что-то похожее, но выходят лишние значения. Подскажите в чём дело??
Код
[CPP]#define _CRT_SECURE_NO_DEPRECATE #include <iostream> using namespace std; using std::cout; using std::endl; int main() { int num; // размер массива cout << "Enter integer value: "; int k = 0; cin >> num; int *d_darr = new int[num]; for (int i = 0; i < num; i++){ int v1; scanf("%d", &v1); d_darr[i] = v1; } for(int i=0;i<num;i++) { int k=1;//количество чисел if(d_darr[i]==d_darr[i+1]) { ++k; ++i; } cout<<k<<" "<<d_darr[i]<<" ";//выводим количество и элемент } cout<<endl; delete [] d_darr; // очистка памяти system("pause"); return 0; }[/CPP]
0
|
62 / 62 / 55
Регистрация: 18.10.2014
Сообщений: 190
|
||||||
07.02.2016, 09:56 | 4 | |||||
тут просто цикл надо правильно ввести
1
|
7 / 7 / 0
Регистрация: 14.11.2014
Сообщений: 166
|
|
07.02.2016, 11:57 [ТС] | 5 |
Всё получилось, но правда с другим циклом! Спасибо Вам большое!!
Вот правильно решённая задача: Код
[CPP]#define _CRT_SECURE_NO_DEPRECATE #include <iostream> using namespace std; int main() { int num; int k = 0; cin >> num; int *d_darr = new int[num]; for (int i = 0; i < num; i++){ int v1; scanf("%d", &v1); d_darr[i] = v1; } for(int i=0;i<num;i++) {k=1; while ( d_darr[i] == d_darr[i+1]) { ++k; ++i; } cout<< k <<d_darr[i]<<" "; } cout<<endl; delete [] d_darr; return 0; }[/CPP]
0
|
07.02.2016, 11:57 | |
07.02.2016, 11:57 | |
Помогаю со студенческими работами здесь
5
Удалить символы и перезаписать строку Перезаписать массив в новую функцию Программу перезаписать в виде функции на С++ Перезаписать нечётные элементы массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |