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

Преобразовать массив

26.04.2011, 19:02. Просмотров 1137. Ответов 2
Метки нет (Все метки)

В одномерном массиве, состоящем из n вещественных элементов, вычислить номер минимального элемента массива. Преобразовать массив таким образом, чтобы сначала располагались все элементы, модуль которых не превышает 1, а потом – все остальные.
сделал поиск элемента и его номера(MS Visual Studio 2008):
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <conio.h>
#include <ctime>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0,"RUS");
    srand(time(0));
    int n;
    int *parray;
    cout <<"Введите размер массива: "; cin >> n;
    parray = new int [n];
    for (int i=0; i<n; i++)
    {
        parray[i]=rand()%100;
        cout <<"a["<<i<<"]="<<parray[i]<<endl;
    }
    int max=parray[0];
    int a,k;
    for (int i=1; i<n; i++)
        if (max>parray[i])
        {
            max=parray[i];
            a=i;
        }
    
    cout <<endl<<"Минимальный элемент массива равен: "<<max;
    cout <<endl<<"Номер минимального элемента равен: "<<a;
    getch();
    return 0;
}
Не пойму, как сделать запись в массив чисел сначала меньших по модулю чем единица, а потом всех остальных...
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2011, 19:02
Ответы с готовыми решениями:

Массив: Преобразовать массив, прибавив к четным числам, входящим в массив, значение первого элемента.
Есть задача С клавиатуры вводятся элементы целочисленного массива размера N. Преобразовать его,...

Как преобразовать массив в динамический? Массив вычисляет сумму элементов каждой диагонали матрицы
Ошибка : Вызвано исключение по адресу 0x00BB2F4F в Проект6.exe: 0xC0000005: нарушение прав доступа...

Задан массив из k символов. Преобразовать массив следующим образом: расположить символы в обратном порядке
Задан массив из k символов. Преобразовать массив следующим образом: расположить символы в обратном...

Дан целочисленный массив размера N. Преобразовать массив, увеличив каждую его серию на один элемент
1. Дан целочисленный массив размера N. Преобразовать массив, увеличив каждую его серию на один...

Дан целочисленный массив размером N. Преобразовать массив, увеличив длину каждой серии на один элемент
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main() { int n; int k=0;...

2
mimicria
return (true);
1964 / 1101 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
26.04.2011, 19:35 2
Цитата Сообщение от Igrek Посмотреть сообщение
Не пойму, как сделать запись в массив чисел сначала меньших по модулю чем единица, а потом всех остальных...
Создайте второй массив, пробегайте по первому с поиском abs()<1 и кидайте во второй, потом добивайте оставшимися, которые abs()>1

Добавлено через 2 минуты
Как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        parray2 = new int [n];
        int t=0;
        for (int i=0; i<n; i++)
        {
                if (abs(parray[i])<1)
                {
                       parray2[t]=parray[i];
                       t++;
                }
        }
        for (int i=0; i<n; i++)
        {
                if (abs(parray[i])>=1)
                {
                       parray2[t]=parray[i];
                       t++;
                }
        }
0
igorrr37
2042 / 1606 / 800
Регистрация: 21.12.2010
Сообщений: 2,751
Записей в блоге: 10
26.04.2011, 20:17 3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<stdio.h>
#include<math.h>
 
int main(){
    double mas[]={7, -8.8, 0.5, 4, 1, 0, 2.2, -0.9}, tmp;
    int size=sizeof(mas)/sizeof(*mas), i, j;
    for(i=0; i<size; ++i){
        tmp=mas[i];
        for(j=i-1; j>=0&&fabs(mas[j])>1&&fabs(tmp)<=1; --j){
            mas[j+1]=mas[j];
        }
        mas[j+1]=tmp;
    }
    for(i=0; i<size; ++i){
        printf("%f ", mas[i]);
    }
    return 0;
}
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2011, 20:17

Дан целочисленный массив размера N. Преобразовать массив, увеличив каждую его серию на один элемент
Помогите преобразовать код из языка С# в С++. Занимался разбором задачи на языке С++. Вот...

Преобразовать массив следующим образом: сначала должны стоять цифры, входящие в массив, а затем все остальные символы
помогите пожайлуста с задачей. Задан массив из k символов. Преобразовать массив следующим...

Дан двумерный массив. Преобразовать его так, чтобы новый массив содержал элементы старого, циклически сдвинутые на 2 элемента влево.
Уважаемые форумчане, такая проблема, не знаю как решить задачу, в моём городе мне не к кому...


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

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

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