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

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

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

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

09.04.2012, 23:04. Просмотров 521. Ответов 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 задание
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2012, 23:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дан массив.Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить сдвиг вправо (C++):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BekStar
0 / 0 / 0
Регистрация: 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 ;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2012, 16:25
Привет! Вот еще темы с ответами:

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

Осуществить сдвиг элементов массива вправо на k позиций - C++
Всем привет , помогите пожалуйста решить эту задачу на языке Си 9. Дан целочисленный массив размера N. Осуществить сдвиг вправо на k...

Осуществить циклический сдвиг элементов массива вправо на k позиций - C++
Решаю задачи на сервере одном, задание было &quot;Дан массив размера N ≥ 2 и число k (0 &lt; k &lt; N). Осуществить циклический сдвиг элементов...

Осуществить циклический сдвиг элементов в матрице на k элементов вправо или вниз - C++
Осуществить циклический сдвиг элементов в мат-це на k элементов вправо или вниз (в зависимости от введенного режима). Число k может быть...


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

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

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