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

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

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

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

09.04.2012, 23:04. Просмотров 507. Ответов 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++ Осуществить циклический сдвиг элементов в матрице на k элементов вправо или вниз
найти все кратные 7 положительные элементы столбца, у которого произведение отрицательных элементов четно C++
Дан массив размера n. Преобразовать его, умножив все положительные элементы на минимальный элемент C++
Дан массив. Все его элементы уменьшить на число А C++
Осуществить сдвиг влево/ вправо элементов C++
Одномерный массив. Осуществить сдвиг вправо на k позиций C++
Осуществить сдвиг элементов массива вправо на k позиций C++
C++ Дан массив A[N]. Все положительные элементы уменьшить на значение минимального элемента
C++ Каким образом осуществить циклический сдвиг на К элементов вправо в массиве?
Дан Двумерный массив размером заполненный случайными числами, количество элементов 20, все положительные. 1.Оп C++
Все положительные элементы массива уменьшить на заданное число C++
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 ;
}
Yandex
Объявления
23.04.2012, 16:25     Дан массив.Все положительные элементы уменьшить на количество отрицательных элементов. Осуществить сдвиг вправо
Ответ Создать тему
Опции темы

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