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

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

Восстановить пароль Регистрация
 
I am the
Сообщений: n/a
19.01.2012, 16:39     Задача на одномерный массив #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++ ЗАДАЧА НА ОДНОМЕРНЫЙ МАССИВ
C++ Задача на одномерный массив.
C++ Задача по С++ на одномерный массив
C++ Задача на одномерный массив
C++ задача на с++( одномерный массив)
задача по C++( одномерный массив) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 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;
}
Yandex
Объявления
19.01.2012, 17:25     Задача на одномерный массив
Ответ Создать тему
Опции темы

Текущее время: 04:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru