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

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

Восстановить пароль Регистрация
 
BekStar
0 / 0 / 0
Регистрация: 09.04.2012
Сообщений: 14
09.04.2012, 23:04     Дан массив.Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить сдвиг вправо #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++ Дан массив целых чисел из 10 элементов.Все элементы кратные 10 заменить 0;Все нечетные элементы удвоить, а четные уменьшить на 2;
Дан массив A[1.50], элементы которого отличны от нуля. Расположить их в таком порядке, чтобы первыми были все положительные элементы, а затем - все о C++
Осуществить сдвиг влево/ вправо элементов C++
Одномерный массив. Осуществить сдвиг вправо на k позиций C++
Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на k позиций, где k – индекс максимального элемента C++
Осуществить сдвиг элементов массива вправо на k позиций C++
C++ Дан массив A[N]. Все положительные элементы уменьшить на значение минимального элемента

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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 ;
}
Yandex
Объявления
23.04.2012, 16:25     Дан массив.Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить сдвиг вправо
Ответ Создать тему
Опции темы

Текущее время: 13:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru