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

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

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

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

22.12.2013, 09:06. Просмотров 646. Ответов 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++
3)В одномерном массив, элементы которого целые числа, произвести следующие действия: вставить новый элемент, перед всеми четными элементами

Используя класс-контейнер vector, вставить элемент х перед всеми минимальными элементами - C++
Используя класс-контейнер vector, вставить элемент х перед всеми минимальными элементами Вход: x=0 1 2 3 1 4 5 6 7 8 9 Выход: 0...

Дана последовательность целых чисел. Вставить новый элемент перед всеми четными элементами - C++
Дана последовательность целых чисел. Вставить новый элемент перед всеми четными элементами #include &lt;iostream&gt; #include &lt;vector&gt; ...

Вставить значение 0 перед элементами - C++
Вставить значение 0 перед элементами, находящимися в позиции, соответствующие числам Фибоначчи. Натолкните на мысль, какие действия? ...

Дан двумерный массив размером 5 * 8, заполненный случайным образом. Вставить перед всеми строками, первый элемент которых делится на3,вставить.... - C++
Дан двумерный массив размером 5 * 8, заполненный случайным образом. Вставить перед всеми строками, первый элемент которых делится на 3,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
22.12.2013, 09:37 #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  [ТС] #3
Спасибо
Очень благодарен.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2013, 09:38
Привет! Вот еще темы с ответами:

В целочисленной матрице вставить новый столбец перед всеми столбцами, в которых встречается заданное число - C++
У нас нету времени,мне нужен код:umnik:Забыл сказать,в двумерном массиве,элементы целые числа

Перед каждым вторым отрицательным значением в массиве вставить нулевое значение - C++
Дан вещественный массив. Перед каждым вторым отрицательным значением в вещественном массиве вставить нулевое значение.

Создать на основе одного массива два других: один с числами кратными 2, второй - с кратными 3 - C++
#include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; int main() { int a, i, j, n = 7,k=7; cout &lt;&lt; &quot;Vvedite massiv:&quot;; ...

Сравнение значения со всеми элементами массива - C++
Суть в том, что у меня есть значение b и массив a for(j = 0; j &lt; n; j++) { if(...) // какое условие нужно написать...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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