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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
lJusTl
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 33
#1

Массивы. Вставить значение a перед всеми элементами, кратными а - C++

22.12.2013, 09:06. Просмотров 633. Ответов 2
Метки нет (Все метки)

Вот условие задачи.
Дан массив из N положительных элементов, больших 1 (2<=N<=100). Вставить значение a перед всеми элементами, кратными а

Формат входных данных:
На входе подаются в первой строке N - число элементов массива
Вторая строка содержит число a
Третья строка содержит N чисел - значения элементов массива

Формат выходных данных: Выведите результирующий массив в строку

Пример:
Ввод
5
2
43 50 76 84 100

Вывод
43 2 50 2 76 2 84 2 100
Помогите найти ошибку и исправить.
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
#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
      int a, i, b;
      printf("Ââåäèòå ÷èñëî a");
      scanf("%d", &a);
      const int N=a;
      int A[N];
      for(i=0; i<N; i++)
      {
      scanf("%d", &A[i]);
      }
      for(i=1; i<N; i+=2)
      {
      b=A[i-1];
      A[i-1]=A[i];
      A[i]=b;
      }
      for(i=0; i<N; i++)
      {
      printf("%d", A[i]);
      }
      getch();
      }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2013, 09:06     Массивы. Вставить значение a перед всеми элементами, кратными а
Посмотрите здесь:
Вставить новый элемент, перед всеми нечётными элементами одномерного массива C++
Вставить новый элемент, перед всеми чётными элементами одномерного массива C++
C++ Дана последовательность целых чисел. Вставить новый элемент перед всеми четными элементами
Вставить значение 0 перед элементами C++
C++ Дан двумерный массив размером 5 * 8, заполненный случайным образом. Вставить перед всеми строками, первый элемент которых делится на3,вставить....
C++ В целочисленной матрице вставить новый столбец перед всеми столбцами, в которых встречается заданное число
C++ Перед каждым вторым отрицательным значением в массиве вставить нулевое значение
C++ Создать на основе одного массива два других: один с числами кратными 2, второй - с кратными 3
Сравнение значения со всеми элементами массива C++
C++ Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались перед всеми остальными
Вставьте в заданный массив элемент X между всеми соседними элементами, имеющими разные знаки C++
Задачка со строками(Требуется вставить символ между всеми парами соседних символов в строке) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
22.12.2013, 09:37     Массивы. Вставить значение a перед всеми элементами, кратными а #2
Цитата Сообщение от lJusTl Посмотреть сообщение
const int N=a;
Так нельзя, если N - константа, то она должна быть задана числом, а не переменной. Возьми, например, 1000 элементов. Вполне хватит.
Цитата Сообщение от lJusTl Посмотреть сообщение
for(i=1; i<N; i+=2)
* * * {
* * * b=A[i-1];
* * * A[i-1]=A[i];
* * * A[i]=b;
* * * }
Что Вы здесь пытались сделать? Как я понял задание, нужно пробегать массив и проверять на кратность сами значения, а вы здесь просто меняете местами каждый второй элемент с каждым "первым" (перед вторым).

Проще всего сделать два массива - один прочитать, а во второй записывать значения и, если значение кратно A, то сначала записать A во второй массив, а затем соответствующий элемент из первого массива

Добавлено через 27 минут
Вы хотели сказать не "исправить", а "написать" за вас программу? :/ В общем, лень было возиться со вторым массивом без студии, поэтому сразу при чтении проверял кратность и писал в целевой массив:
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
#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{
const int N = 1000;
      int a, i, n, x, t = 0;
printf("Введите число n");
      scanf("%d", &n);
      printf("Введите число a");
      scanf("%d", &a);
      int massive[N];
      for(i=0; i<n; i++)
      {
      scanf("%d", &x);
if (x % a == 0)
{
massive[t] = a;
++t;
}
massive[t] = x;
++t;
      }
n = t;
      for(i=0; i<n; i++)
      {
      printf("%d", massive1[i]);
      }
      getch();
      }
lJusTl
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 33
22.12.2013, 09:38  [ТС]     Массивы. Вставить значение a перед всеми элементами, кратными а #3
Спасибо
Очень благодарен.
Yandex
Объявления
22.12.2013, 09:38     Массивы. Вставить значение a перед всеми элементами, кратными а
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru