Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
yesofcourse
1 / 1 / 1
Регистрация: 14.03.2017
Сообщений: 46
1

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

14.03.2017, 16:17. Просмотров 907. Ответов 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
Ответы с готовыми решениями:

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

Выбрать из массива ту часть, где значения равны от 10 до 25 и вывести новый массив в порядке возрастания
Дан массив из 25 значений, значения от 8 до 27. Нужно выбрать из массива ту...

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

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

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

3
Даценд
Модератор
Эксперт .NET
4284 / 4016 / 2660
Регистрация: 20.04.2015
Сообщений: 7,304
14.03.2017, 16:43 2
Лучший ответ Сообщение было отмечено yesofcourse как решение

Решение

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
1 / 1 / 1
Регистрация: 14.03.2017
Сообщений: 46
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
4284 / 4016 / 2660
Регистрация: 20.04.2015
Сообщений: 7,304
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2017, 16:23

Вывести элементы массива с четными номерами в порядке возрастания номеров
Дан массив А размера N (N -четное число), вывести его элементы с четными...

Вывести на экран все элементы целочисленного двумерного массива в порядке возрастания
Вывести на экран все элементы целочисленного двумерного массива в порядке...

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


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

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

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