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

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

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

Массив А состоящий из 30 элементов, переформировать так чтобы в начале стояли все неотрицательные значения ... - C++

06.04.2011, 18:45. Просмотров 440. Ответов 3
Метки нет (Все метки)

недавно начал изучать С++ и столкнулся с такой проблемкой.. дан массив А состоящий из 30 элементов, переформировать так чтобы в начале стояли все неотрицательные значения элементов в порядке их убывания, а затем все отрицательные в порядке возрастания значений.. я думаю может мне в цикл возвести, то ли как массив решать..
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2011, 18:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив А состоящий из 30 элементов, переформировать так чтобы в начале стояли все неотрицательные значения ... (C++):

Дан массив а1,а2,,…,аn. Переставить его элементы так, чтобы в начале массива расположились все его неотрицательные элементы, а в конце – отрицательные - C++
Помогите плиз написать программу: Дан массив а1,а2,,…,аn. Переставить его элементы так, чтобы в начале массива расположились все его...

Дан массив а1+ a2+…+an Переставить его элементы так чтобы в начале массива расположились все его неотрицательные элементы, а в конце - отрицательные - C++
Дан массив а1+ a2+…+an помогите переставить его элементы так чтобы в начале массива расположились все его неотрицательные элементы, а в...

Отсортировать массив из 0 и 1 так, чтобы все нули находились в начале, а все единицы - в конце массива - C++
Тема: Функции 1. Дано одномерный массив, заполненный 0 и 1 в произвольном порядке. Отсортировать данный массив таким образом, чтобы все...

Вывести массив так, чтобы элементы стояли в порядке возрастания - C++
Приветствую всех. Что-то не могу решить задачку. Посмотрел у вас аналогичную, но я там многих операторов не знаю. Суть задачи: дан...

Переставить члены последовательности так, чтобы сначала расположились все неотрицательные - C++
Помогите пожалуйста. Задан массив действительных чисел. Переставить члены последовательности так, чтобы сначала расположились все ее...

Как в данной программе сделать так чтобы все генерируемые числа стояли по возрастанию или по убыванию - C++
как в данной программе сделать ток что бы все генерируемые числа стояли по возрастанию или по убыванию нужен свежий взгляд ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Sick2
14 / 14 / 1
Регистрация: 26.11.2010
Сообщений: 235
06.04.2011, 19:27 #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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// probel.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <iostream>
#include<ctime>
#include <stdio.h>
using namespace std;
void  sort(int A[], int n)
 
{
 
int   i,found;              
 
do    {                     
found =0;
 
for (i=0; i<n-1; i++)
 
if (A[i] < A[i+1])    
 
    {              
 
    int   cc;
 
    cc = A[i]; A[i]=A[i+1]; A[i+1]=cc;
 
    found++;    
 
    }
if(A[i]<0)
{
  if(A[i]>A[i+1])
  {
int  b;
 
    b = A[i]; A[i]=A[i+1]; A[i+1]=b;
 
   
}
}
} while(found !=0);     
 
}
 
 
 
void main(){
 
 
 
int *a=new int[100];
int i,n;
cin>>n;
for(i=0;i<n;i++)
{
  cin>>a[i];
}
sort(a,n);
 
for (i=0; i<n; i++) {
    cout<<a[i]<<" ";
    }
//for (i=0; i<n; i++) {
//  delete a[i];
//  delete [] a;
//  }
 
puts("");
system("pause");
}
Что-то намутил. Я ещё нубик, поэтому сильно не ругать. Почему-то всё нормально сортирует, кроме последнего числа

Добавлено через 6 минут
Нашёл ошибку, в for (i=0; i<n-1; i++) убрать -1. Всё)

Добавлено через 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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "stdafx.h"
#include <iostream>
#include<ctime>
#include <stdio.h>
using namespace std;
void  sort(int A[], int n)
 
{
 
int   i,found;              
 
do    {                     
found =0;
 
for (i=0; i<n; i++)
 
if (A[i] < A[i+1])    
 
{              
 
int   cc;
 
cc = A[i]; A[i]=A[i+1]; A[i+1]=cc;
 
found++;    
 
}
if(A[i]<0)
{
if(A[i]>A[i+1])
{
int  b;
 
b = A[i]; A[i]=A[i+1]; A[i+1]=b;
 
 
}
}
} while(found !=0);     
 
}
 
 
 
void main(){
 
 
 
int a[100];
int i,n,rmax,rmin;
cin>>n;
cin>>rmax>>rmin;
srand((unsigned)time(NULL));
for(i=0;i<n;i++)
{
a[i]=(int)(((double)rand()/(double)RAND_MAX)*(rmax-rmin)+rmin);
}
sort(a,n);
 
for (i=0; i<n; i++) {
cout<<a[i]<<" ";
}
 
 
puts("");
system("pause");
}
Вот, короче, код. Наверное можно и проще,но...как умею))
0
slava_g1
71 / 71 / 8
Регистрация: 06.02.2011
Сообщений: 127
06.04.2011, 19:28 #3
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
#include <iostream>
#include<ctime>
using namespace std;
void  main(){
    srand(time(0));
    const int SIZE=10;
    int arr[SIZE];
    for(int i=0;i<SIZE;i++){
        arr[i]=rand()%25-10;
    }
    for(int i=0;i<SIZE;i++){
        cout<<arr[i]<<"\t";
    }
    cout<<endl;
    for(int i=0;i<SIZE;i++){
        for(int j=i+1;j<SIZE;j++){
            if(arr[i]<arr[j]){
                int tmp=arr[i];
                arr[i]=arr[j];
                arr[j]=tmp;
            }
        }
    }
    for(int i=0;i<SIZE;i++){
        cout<<arr[i]<<"\t";
    }
    cout<<endl;
}
Спасибо ниже.
1
satanic
0 / 0 / 0
Регистрация: 20.09.2010
Сообщений: 16
06.04.2011, 19:48  [ТС] #4
slava_g1 я вроде только только начинающий в направлении С++ и не так уж понял на счет вот этой команды "#include<ctime>".. на днях мне говорили что при таких случаях необходимо вводить команду "#include<math>" объясните мне плз что да как.. я совсем запутался.. да и не совсем понял почему тут введена команда "srand(time(0));" если честно для меня это очень трудно.. я пока никак не могу сказать что все тут понял.. многие операторы я вижу впервые.. нельзя ли это как то более простенько написать.. возведя все это в цикл..? возможно я пойму..
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2011, 19:48
Привет! Вот еще темы с ответами:

Переформировать текст так, чтобы каждое предложение занимало отдельную строку - C++
Переформировать весь текст так, чтобы каждое предложение занимало отдельную строку. (Признак конца предложения - точка.)

Отсортировать массив, чтобы все положительные числа находились в начале, отрицательные - в конце - C++
Помогите пожалуйста. Дан вещественный массив A( N ) . Отсортировать его таким образом , чтобы все положительные числа находились в...

Распределить элементы массива так, чтобы сначала стояли положительные, а потом отрицательные - C++
Даны целые числа n одномерного массива. Полная программа на c++.

Отсортировать массив таким образом, чтобы все нули находились в начале, а единицы — в конце массива - C++
Здравствуйте, дано такое задание Элементами массива IM(N) являются числа 0 и 1. Отсортировать этот массив таким образом, чтобы все нули...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.04.2011, 19:48
Ответ Создать тему
Опции темы

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