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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Sesame
0 / 0 / 0
Регистрация: 27.09.2011
Сообщений: 9
18.01.2012, 12:31     Задача на одномерный массив #1
Дан одномерный массив из 100 элементов, состоящий из случайных вещественных чисел в диапазоне от -55 до 16. Вывести в порядке невозрастания (убывания) те отрицательные элементы этого массива, индекс которых — нечетное число.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2012, 12:31     Задача на одномерный массив
Посмотрите здесь:

C++ ЗАДАЧА НА ОДНОМЕРНЫЙ МАССИВ
C++ Задача на одномерный массив.
C++ Задача по С++ на одномерный массив
C++ Задача на одномерный массив
Задача на одномерный массив C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
K1m
 Аватар для K1m
9 / 9 / 1
Регистрация: 02.01.2012
Сообщений: 167
18.01.2012, 12:54     Задача на одномерный массив #2
Ну как то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
main()
{
float a[99], b[99];
//тут будет ввод массива
int j=0;
for (int i=0; i<=99; i++)
{
    if ((a[i]<0)&&(i%2!=0))
    {
         b[j]=a[i];
         j++;
    }
}
for (int i=0; i<j; i++)
{
   cout << b[i] << endl;
}
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.01.2012, 13:07     Задача на одномерный массив #3
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <iterator>
#include <functional>
 
int main()
{
    std::srand(std::time(nullptr));
    const int size = 10;
    std::vector<int> v(size);
    std::generate(v.begin(), v.end(), [] { return std::rand() % 71 - 55; });
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    std::vector<int> result;
    for(int i = 0; i < size; i += 2)
        if(v.at(i) < 0)
            result.push_back(v.at(i));
    std::sort(result.begin(), result.end(), std::greater<int>());
    std::copy(result.begin(), result.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    return 0;
}
http://liveworkspace.org/code/ccf36d...9130c816b5d8e1
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
18.01.2012, 13:24     Задача на одномерный массив #4
soon, какой у тебя компилятор? А то у меня на 14-ю строчку ругается
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
18.01.2012, 13:30     Задача на одномерный массив #5
kravam, там все нормально, стандарт 11
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
18.01.2012, 13:47     Задача на одномерный массив #6
Я не говорю, что ненормально. Фактически мой ворос заключался в том, какой компилятор отвечает стандарту. На всякий случай, у меня

C++
1
2
3
4
5
6
7
8
9
E:\Dev-Cpp_nomingw\bin>g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=e:/dev-cpp_nomingw/bin/../libexec/gcc/mingw32/4.6.1/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.6.1/configure --enable-languages=c,c++,fortran,objc,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --enable-libgomp -
-disable-win32-registry --enable-libstdcxx-debug --enable-version-specific-runtime-libs --build=mingw32 --prefix=/mingw
Thread model: win32
gcc version 4.6.1 (GCC)
От 18 ноября прошлого года
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
18.01.2012, 13:54     Задача на одномерный массив #7
Цитата Сообщение от kravam Посмотреть сообщение
какой компилятор отвечает стандарту.
Например, этот частично поддерживает C++11 mingw-4.6.2+boost-1.48.0
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
18.01.2012, 14:04     Задача на одномерный массив #8
Я сколько не тыкал в подпись niXmanу, попадаю на страницу с кракозябрами
K1m
 Аватар для K1m
9 / 9 / 1
Регистрация: 02.01.2012
Сообщений: 167
18.01.2012, 14:11     Задача на одномерный массив #9
Блин, я забыл упорядочить.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
18.01.2012, 15:08     Задача на одномерный массив #10
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
44
45
46
47
48
49
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define N 100
 
//-------------
 
double rand_float(double low, double high)
{
   return (high - low) * (double)rand() / RAND_MAX + low;
}
 
//-------------
int cmp(const void* p1, const void* p2)
{
    double a = *(const double*)p1;
    double b = *(const double*)p2;
 
    if(a < b) return -1;
    if(a > b) return 1;
    return 0;
}
 
 
int main()
{
    int i, j;
    double a[N];
    double b[N];
 
    srand(time(NULL));
    for(i = 0; i < N; ++i)
    {
        a[i] = rand_float(-55.0, 16.0);
        printf("[%d]: %f\n", i, a[i]);
    }
 
    j = 0;
    for(i = 1; i < N; i+= 2)
        if(a[i] < 0.0) b[j++] = a[i];
 
    printf("-----------------------\n");
    qsort(b, j, sizeof(double), cmp);
    for(i = 0; i < j; ++i)
        printf("[%d]: %f\n", i, b[i]);
 
    return 0;
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.01.2012, 15:42     Задача на одномерный массив #11
kravam,
g++
Bash
1
2
3
4
5
soon@bt:~$ g++ --version
g++ (GCC) 4.7.0 20111129 (experimental)
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Не по теме:

Судя по таблице, поддержка лямбда началась с 4.5.

kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
18.01.2012, 16:44     Задача на одномерный массив #12
А командную строку можно?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.01.2012, 16:50     Задача на одномерный массив #13
Цитата Сообщение от kravam Посмотреть сообщение
А командную строку можно?
Имели в виду
команду
Bash
1
g++ -std=c++0x main.cpp -o main
?
Sesame
0 / 0 / 0
Регистрация: 27.09.2011
Сообщений: 9
19.01.2012, 23:39  [ТС]     Задача на одномерный массив #14
Не могу понять что именно не так...
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
#include "stdafx.h"
#include"iostream"
#include"stdlib.h"
#include"ctime"
#include"stdio.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int a=-55, b=16, i, j=0, q=100;
float arr[100], mass[100]; 
//объявление массива
for ( int i=0; i<q; i++)
{
    arr[i]= rand()/float(RAND_MAX)*(a-b)+b;
}
for(i=0;i<q;i++)
    printf(" %2.2f", arr[i]);
//выделение нечетных и отрицательных
int j=0;
for (int i=0; i<=99; i++)
{
    if ((arr[i]<0)&&(i%2!=0))
    {
         mass[j]=arr[i];
         j++;
    }
}
for (int i=0; i<j; i++)
{
   printf("%2.2f", mass[j]);
}
 
getchar();
    return 0;
}
Объявленный массив впорядке, а как начинаю выводить "mass[j]" то он выдает первое значение -107374176.00 а остальные 1.00 В чем проблема?
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
20.01.2012, 00:10     Задача на одномерный массив #15
Там повторное объявление j... Но в целом вроде работает.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
20.01.2012, 00:11     Задача на одномерный массив #16
Вот и мне непонятно, у тебя в 10-ой и в 20-ой строке два раза объявляется j, как такое компилится?
Sesame
0 / 0 / 0
Регистрация: 27.09.2011
Сообщений: 9
20.01.2012, 00:26  [ТС]     Задача на одномерный массив #17
Переприсваивание исправленно. Однако практически все тоже самое осталось... Скриншот прилогается...
Миниатюры
Задача на одномерный массив  
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
20.01.2012, 00:37     Задача на одномерный массив #18
Ввыводе напиши
C++
1
  printf("%2.2f", mass[i]);
и всё будет круто
... А знаешь что в этой истории меня больше всего удивило? Числа же рандомные, но и у тебя и у меня сгенерились одинаковые числа!
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
20.01.2012, 00:39     Задача на одномерный массив #19
В последнем цикле индекс не тот при выводе.

Добавлено через 30 секунд
kravam, а ты видишь там srand()?)
Хотя, надо сказать, у меня другие, системы разные.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2012, 00:48     Задача на одномерный массив
Еще ссылки по теме:

C++ задача на с++( одномерный массив)
задача по C++( одномерный массив) C++

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

Или воспользуйтесь поиском по форуму:
Sesame
0 / 0 / 0
Регистрация: 27.09.2011
Сообщений: 9
20.01.2012, 00:48  [ТС]     Задача на одномерный массив #20
NoMasters, kravam, спасибо вам. Понял свою ошибку. И не могли бы вы еще с сортировкой помочь, пожалуйста.
Yandex
Объявления
20.01.2012, 00:48     Задача на одномерный массив
Ответ Создать тему
Опции темы

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