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

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

Войти
Регистрация
Восстановить пароль
 
I am the
Сообщений: n/a
#1

Задача на одномерный массив - C++

19.01.2012, 16:39. Просмотров 970. Ответов 1
Метки нет (Все метки)

Дан одномерный массив из 100 элементов, состоящий из случайных вещественных чисел в диапазоне от 4 до 16. Вывести в порядке убывания те элементы этого массива, дробная часть которых начинается с чётной цифры. Вот мой вариант написания, не могу понять в чем проблема.
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
#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#pragma hdrstop
#include <iostream>
#include<ctime>
 
#pragma argsused
int main(int argc, char* argv[])
{float j[100], a[100],m,k;
int i=0,max=0,z=0,n;
srand(time(0));
for(i=0;i<100;i++)
a[i]=(rand()%12)+4;
for(i=0;i<100;i++) {
j[i]=a[i]*10;
if (j[i]%2==0) { j[z]=j[i];
z++ ;
}
}
for (i = 0; i <= z; i++) {
while (j[i+1]>j[i])
{max=j[i];
j[i]=j[i+1];
j[i+1]=max;
i--;
}}
for (i = 0; i <= z; i++) {
printf ("%lf\n", j[i]/10.);}
getchar();
return 0;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2012, 16:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача на одномерный массив (C++):

Задача по С++ на одномерный массив - C++
Написать программу которая выводит сумму четных чисел от2 до 20... с помощью одномерного массива!!!!

Задача на одномерный массив - C++
Здаствуйте. Помогите решить задачу. Надо сформировать одномерный массив целых чисел, используя генератор случайных чисел. Уничтожить...

Задача на одномерный массив - C++
Дан одномерный массив из 100 элементов, состоящий из случайных вещественных чисел в диапазоне от -55 до 16. Вывести в порядке невозрастания...

задача по C++( одномерный массив) - C++
В одномерном массиве, состоящем из п вещественных элементов, вычислить: • сумму отрицательных элементов массива; • произведение...

ЗАДАЧА НА ОДНОМЕРНЫЙ МАССИВ - C++
Дано N действительных случайных чисел в диапазоне от 2 до 10. Определить, какое из них на числовой оси лежит ближе к целому числу. как...

задача на с++( одномерный массив) - C++
помогите пожалуйста разобраться с задачей нужно сформировать массив с по следующему принципу:сi = {tgi2, если i нечетное, или i2, если i...

1
co6ak
Кошковед
409 / 502 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
19.01.2012, 17:25 #2
мне немного лень смотреть. но суть в чем:
сортируешь весь массив тем же пузырьком допустим.
потом вывод по условию:
C++
1
2
3
     int x;
     float f = 12345.64341;
    x = ( static_cast<int>(f*10) ) % 10;  // int x =  первому числу после запятой ( 6 )
или вот так
проверка, является ли первое число после запятой четным. без использования переменной X
C++
1
2
3
if ( (static_cast<int>(f*10) % 10) % 2 == 0 ) {
        ;
    }
или вариант 2:
находишь все элементы, которые удовлетворяют условию, медленно занося их в начало массива. ведешь счетчик эл-тов параллельно.
потом массив, состоящий уже наверняка из меньшего числа эл-тов сортируешь и выводишь

Добавлено через 30 минут
вот мой красивенький вариант
примечание: 0 - четное число
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
#include <time.h>
#include <stdlib.h>
#include <iostream>
#include <iomanip>
 
int main()
{
    srand ( time ( NULL ) );
    const int size = 100;
 
    double arr [ size ];
    int counter = 0;
    std::cout << "Basic array: \n\n";
    for ( int i = 0; i < size; i ++ )
    {
        arr[i] = static_cast<double>(rand()) / static_cast<double>(RAND_MAX) + static_cast<double>(rand()%13) + 4.0;
        if ( (static_cast<int>(arr[i] * 10) % 10 ) % 2 == 0 )
        {
            double tmp = arr[counter];
            arr[counter] = arr[i];
            arr[i] = tmp;
            counter++;
        }
        std::cout << std::setw(8) << "\t" << arr[i] ;
    }
 
    for ( int i = 0; i < counter-1; i ++ )
    {
        for ( int j = i + 1; j < counter; j ++ )
            if ( arr[i] < arr[j] )
            {
                double tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
            }
    }
 
    std::cout << "\n\nSorted array: \n";
    for ( int i = 0; i < counter; i ++ )
        std::cout << std::setw(8) << "\t" << arr[i];
    std::cin.get();
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2012, 17:25
Привет! Вот еще темы с ответами:

Задача на одномерный массив - C++
Дана задача: &quot;Лесенка&quot; Вова стоит перед лесенкой из N ступеней. На каждой из ступеней написаны произвольные целые числа. Первым шагом...

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

Задача на одномерный массив) - C++
В одномерном масиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального по модулю элемента масива; 2)...

Задача на одномерный массив (сортировка) - C++
Помоги тебе решить задачу, пожалуйста. Дан одномерный массив из N элементов. Не заводя дополнительного массива отсортировать данный...


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

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

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