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

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

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

Вывести в порядке возрастания элементы массива, целая часть которых - нечетное число - C++

14.03.2017, 16:17. Просмотров 220. Ответов 3
Метки нет (Все метки)

в массиве 100 вещ чисел (от 3 до 35). как вывести в порядке возрастания элементы, целая часть которых нечетное число? знаю вроде только как заполнить, а как выполнить сортировку нет.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>
 
int main()
{
    srand(time(0));
    double m[100];
    for (int i = 0; i < 100; i++)
        m[i] = (double)rand() / RAND_MAX * 35 - 3 + 3;
 
    for (int i = 0; i < 100; i++)
        printf("%d ", m[i]);
        
        
    getchar(); getchar();
 
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2017, 16:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести в порядке возрастания элементы массива, целая часть которых - нечетное число (C++):

Преобразование массива, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [a,b] - C++
Помогите пожалуйста. Нужно преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в...

Массив: Вывести элементы, индексы которых являются степенями 2, упорядочив их в порядке возрастания - C++
Сформировать случайным образом массив из 20 элементов и вывести на экран сначала весь массив, а затем только те элементы, индексы которых...

Вывести элементы массива в порядке возрастания их длины - C++
Дано массив А$(10) вывести на печать элементы в возрастающем порядке их длины.

Вывести в порядке неубывания (возрастания) отрицательные элементы массива - C++
Дан одномерный массив из N случайных действительных чисел в диапазоне от -5 до 5. Вывести в порядке неубывания (возрастания) отрицательные...

Вывести на экран все элементы целочисленного двумерного массива в порядке возрастания - C++
Вывести на экран все элементы целочисленного двумерного массива в порядке возрастания. #include &lt;vcl.h&gt; #include &lt;conio.h&gt; ...

Вывести на экран элементы массива целых чисел в порядке возрастания их числа делителей - C++
1 Получить все числа, которые входят в массив по одному разу 2 Вывести на экран элементы массива целых чисел в порядке возрастания их...

3
Даценд
Модератор
Эксперт .NET
3699 / 3571 / 1823
Регистрация: 20.04.2015
Сообщений: 6,550
14.03.2017, 16:43 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
yesofcourse,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    srand(time(0));
    double m[100];
    for (int i = 0; i < 100; i++)
        m[i] = (double)rand() / RAND_MAX * 35 - 3 + 3;
    cout << "All elements:" << endl;
        for (int i = 0; i < 100; i++)
    cout << m[i] << " ";
    cout << endl << "Elements with odd integer part:" << endl;
    for (int i = 0; i < 100; i++)
        if (((int)m[i])%2)
            cout << m[i] << " ";
    return 0;
}
1
yesofcourse
0 / 0 / 0
Регистрация: 14.03.2017
Сообщений: 11
15.03.2017, 16:09  [ТС] #3
Спасибо, сдал задачу. Однако я диапазон неправильно ввел, и потому у меня числа начинались не от 3, а например от 1, но что правильно до 35, хорошо что преподаватель этого не заметил. Как все таки правильно сделать ввод случ вещ чисел? это так мне на будущее.
Вы написали мне сортировку по элементам, а надо было по самим числам, но спасибо, я дополнил ваше предложение своим.


#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "");

srand(time(0));
int n = 0;
const int J = 100;
double m[J];
printf("Введите длину массива больше 0 и не больше %d : \n", J);
scanf("%d", &n);
while (n <= 0 || n > J)
{
printf("Введите длину массива больше 0 и не больше %d : \n", J);
scanf("%d", &n);
}
for (int i = 0; i < n; i++)
m[i] = (double)rand() / RAND_MAX * 35 - 3 + 3;

for (int i = 0; i < n; i++)
printf("%.2f ", m[i]);
printf("\nНечетные элементы в порядке возрастания: \n");

for (int i = 0; i<n - 1; i++)
for (int j = i + 1; j<n; j++)
if (m[j] < m[i])
{
double t = m[j];
m[j] = m[i];
m[i] = t;
}
for (int i = 0; i < n; i++)
if (((int)m[i])%2)
printf("%.2f ", m[i]);
getchar(); getchar();
}

Добавлено через 7 минут
Даценд,
Спасибо, сдал задачу. Однако я диапазон неправильно ввел, и потому у меня числа начинались не от 3, а например от 1, но что правильно до 35, хорошо что преподаватель этого не заметил. Как все таки правильно сделать ввод случ вещ чисел? это так мне на будущее.
0
Даценд
Модератор
Эксперт .NET
3699 / 3571 / 1823
Регистрация: 20.04.2015
Сообщений: 6,550
15.03.2017, 16:23 #4
yesofcourse,
Нужно:
C++
1
m[i] = (double)rand() / RAND_MAX * 32 + 3;
Здесь
rand() возвращает от 0 до RAND_MAX
(double)rand() / RAND_MAX дает результат от 0 до 1
(double)rand() / RAND_MAX * 32 дает результат от 0 до 32
(double)rand() / RAND_MAX * 32 + 3 дает результат от 3 до 35
В общем случае для диапазона от min до max используем выражение:
C++
1
(double)rand() / RAND_MAX * (max - min) + min
1
15.03.2017, 16:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2017, 16:23
Привет! Вот еще темы с ответами:

Преобразовать массив, расположив в начале элементы, целая часть которых не превышает 1, а потом все остальные - C++
Ребята, выручайте очень нужно. 1.Найти количество положительных элементов массива. 2.Найти сумму элементов массива, расположенных...

Преобразовать массив: сначала расположить все элементы, целая часть которых не превышает 1, потом - остальные - C++
Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых не превышает 1, а потом — все...

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

Создать массив из дробных частей исходного массива целая часть которых чётная и положительная - C++
Размер указывает пользователь. Заполнить его случайными значениями. Работу с массивом реализовать функциями. Создать динамический...


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

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

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