Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
BekStar
0 / 0 / 1
Регистрация: 09.04.2012
Сообщений: 14
1

Дан массив.Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить сдвиг вправо

09.04.2012, 23:04. Просмотров 657. Ответов 1
Метки нет (Все метки)

Помогите доделать задачу на С++
1.Дан массив A[N]. Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить сдвиг вправо на k позиций, где k – число положительных элементов.
2.Массивы, полученные в результате выполнения задания варианта А, отсортировать методом простого обмена, методом простой выборки и методом простой вставки. Методом бинарного поиска найти элемент, равный k. Если такого элемента нет, то вывести соответствующее сообщение.

Все положительные элементы уменьшить на количество отрицательных элементов уже сделал. Теперь мне нужно сдвиг на k позиций.
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
#include <stdio.h>
#include <math.h>
#include <conio.h>
#define N 100
main () {
clrscr();
int n,i,p,ko,k;
double a[N],b[N],c[N];
ko=0; k=0;
printf ("\n razmer massiva="); // задаем размер
scanf ("%d",&n);
printf ("\n VVedite elementi massiva: \n"); //  ведем элементы
for (i=0; i<n;i++) {
scanf ("%lf", &a[i]); }
for (i=0; i<n; i++)
{
if (a[i]<=0) 
ko=ko+1;// количество отрицательных
else
k=k+1; // количества положительных
}
for (i=0; i<k; i++)
{ if (a[i]>=0)
b[i]=a[i]-ko; } // вычисление уменьшение положительных на количество отрицательных
for(i=0;i<=k-1;i++) 
printf ("\n %2.0lf",b[i]); // Здесь выводиться уменьшенное на количество отрицательных
getch();
return 0;
}
А дальше сдвиг не получается и 2 задание
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2012, 23:04
Ответы с готовыми решениями:

Дан массив размера N. Осуществить сдвиг элементов массива вправо на одну позицию (при этом A1 перейдет в A2, A2 — в A3,
Дан массив размера N. Осуществить сдвиг элементов массива вправо на одну позицию (при этом A1...

Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента
Помогите пожалуйста решить эту задачу, Дан массив размера N. Осуществить циклический сдвиг...

Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k- индекс максимального элемента.
Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k-...

Дан массив A[N]. Все положительные элементы уменьшить на значение минимального элемента
Здравствуйте! Помогите немного доделать вот такую задачку: ...

Дан массив целых чисел из 10 элементов.Все элементы кратные 10 заменить 0;Все нечетные элементы удвоить, а четные уменьшить на 2;
Дан массив целых чисел из 50 элементов. Все элементы кратные 10 заменить 0; Все нечетные...

1
BekStar
0 / 0 / 1
Регистрация: 09.04.2012
Сообщений: 14
23.04.2012, 16:25  [ТС] 2
Все задача решена. Вот код :
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
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <math.h>
#include <conio.h>
#define N 100
int main () {
clrscr();
int n,i,ko,k;
double a[N],b[N],c[N],f;
ko=0; k=0;
printf ("\n razmer massiva=");
scanf ("%d",&n);
printf ("\n VVedite elementi massiva: \n");
for (i=0; i<n;i++)
scanf ("%lf", &a[i]);
for (i=0; i<n; i++)
{
if (a[i]<=0)
ko=ko+1;
else
k=k+1;
}
for (i=0; i<k; i++)
{ if (a[i]>=0)
b[i]=a[i]-ko;}
 
 if(k>0)
 {
   while (k!=0)
   {
   i= n-1;
   f=a[i];
   for(i=n-1; i> 0; i--)
   a[i]= a[i-1];
   a[0]= f;
   k--;
   }
   }
 
 
for(i=0;i<=k-1;i++)
printf ("\n %2.0lf",b[i]);
for(i=0;i<n;i++)
printf ("%2.0lf",a[i]);
getch();
return 0 ;
}
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2012, 16:25

Дан Двумерный массив размером заполненный случайными числами, количество элементов 20, все положительные. 1.Оп
Дан Двумерный массив размером заполненный случайными числами, количество элементов 20, все...

Осуществить сдвиг влево/ вправо элементов
Разработать подпрограммы (функции или процедуры) для следующих алгоритмов над массивом. Входным...

Одномерный массив. Осуществить сдвиг вправо на k позиций
Здравствуйте, помогите, пожалуйста с лабораторкой) Все никак не получается.. Вот задача Дан массив...


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

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

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