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

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

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

массив С++ - C++

08.01.2012, 09:30. Просмотров 564. Ответов 3
Метки нет (Все метки)

Здравствуйте форумчане!.
есть такая задача:
Дан массив:
а)вывести его на экран
б)инвертировать, ну т.е. поменять местами 1ый элемент с последним 2ой с предпоследним и т.д. и вывести
в)посчитать количество элементов массива, первышающих 1ый элемент
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
#include <iostream>
 
void main()
{
  int masiv[] = {12,22,2,76,129,32,-9,1,0,71,59,22,18,91,56,32,148};
 
  int temp, i;
  int kol = sizeof(masiv) / sizeof(int);//узнаем количество элементов
  for ( i = 0; i < kol; i++ )
    printf("%d\t", masiv[i]);//вывод всех элементов
 
  for ( i = 0; i < kol / 2; i++ )
  {//инвертируем элементы
    temp = masiv[i];
    masiv[i] = masiv[kol - i - 1];
    masiv[kol - i - 1] = temp;
  }
 
  printf("\n\n");
  for ( i = 0; i < kol; i++ )
    printf("%d\t", masiv[i]);//вывод всех инвертированных элементов
 
  int count = 0;
  for ( i = 0; i < kol - 1; i++ )
    if ( masiv[kol - 1] < masiv[i] ) count++;//т.к. 1-й элемент теперь последний, сравниваем с ним все числа кроме самого элемента
  printf("\n number of elements %u \n", count);
}
преподаватель просит чтобы программа была выполнена при помощи функций...(main() должен содержать только ввод и вывод массива)
заранее благодарен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2012, 09:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос массив С++ (C++):

Ввести массив А. В массив В перенести все элементы массива А, стоящие правее максимального элемента, и имеющие нечетный индекс. Массив В отсортировать - C++
Добрый Вечер! Написал первую часть программы по этому заданию&quot;Ввести массив А. В массив В перенести все элементы массива А, стоящие правее...

Массив: Как скопировать двумерный массив в другой массив? - C++
Как скопировать двумерный массив в другой массив?

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

Файл: Загрузка данных из файла: первый столбец записывался в 1й массив, второй столбец - во 2й массив, а 3й столбец - в 3й массив. - C++
Есть текстовый файл, в нем 3 столбца чисел (число строк заранее неизвестно). Напишите пожалуйста код, чтобы первый столбец записывался в...

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

Дан массив А(4,4). Сформировать массив В(4) из среднеарифметических значений элементов в каждой строке. - C++
Дан массив А(4,4). Сформировать массив В(4) из среднеарифметических значений элементов в каждой строке. Посмотрите пожалуйста... ...

3
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.01.2012, 09:56 #2
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
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
#include <vector>
#include <ctime>
#include <cstdlib>
#include <iterator>
 
template <class Iterator, class Generator>
void generate(Iterator first, Iterator last, Generator gen)
{
    while(first != last)
        *first++ = gen();
}
 
template<class InputIterator, class OutputIterator>
OutputIterator mycopy(InputIterator first, InputIterator last, OutputIterator result)
{
    while (first!=last) 
        *result++ = *first++;
    return result;
}
 
template <class T>
void swap(T& a, T& b)
{
    T tmp = a;
    a = b;
    b = tmp;
}
 
template <class Iterator> 
void reverse(Iterator first, Iterator last)
{
    while((first != last) && (first != --last))
        swap(*first++, *last);
}
 
template <class Iterator, class Predicate>
unsigned count_if(Iterator first, Iterator last, Predicate pred)
{
    unsigned count = 0;
    while(first != last) 
        if(pred(*first++)) 
            ++count;
    return count;
}
 
template <class T> T gen() { return std::rand() % 21; }
 
int main()
{
    std::srand(std::time(NULL));
    std::vector<int> v(10);
    generate(v.begin(), v.end(), gen<int>);
    mycopy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    reverse(v.begin(), v.end());
    mycopy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    std::cout << count_if(v.begin(), v.end(), std::bind2nd(std::greater<int>(), *v.begin()));
    std::cout << std::endl;
    return 0;
}
Можно короче, если взять все это из algorithm. Но вдруг нельзя вам пользоваться готовыми функциями.
1
1ive
0 / 0 / 0
Регистрация: 29.12.2011
Сообщений: 10
08.01.2012, 10:06  [ТС] #3
soon...опять ты меня выручаешь!..только когда я своему учителю показал твою программу...инфаркт микардо чуть не случился у него...настолько сложным языком для МЕНЯ написано(мы просто этого не изучали)...

Добавлено через 3 минуты
в общем он мне объяснил так(как ф-ции делать)...
1.void f1()
{//инвертируем массив
cout<<.....}
2.int f2()
{//подсчет ко-ва элементов превышающих первый
return count}
cout<<........
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.01.2012, 10:40 #4
Цитата Сообщение от 1ive Посмотреть сообщение
олько когда я своему учителю показал твою программу...инфаркт микардо чуть не случился
Мда. Нехорошо получилось...
Так пойдет? Без stl
Не надо выводить массив в функции, кторая его инвертирует, не есть красиво это.
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
50
51
52
53
54
55
56
57
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <iterator>
 
void generate(int* first, int* last, int gen())
{
    while(first != last)
        *first++ = gen();
}
 
std::ostream& print(int* first, int* last, std::ostream& stream, std::string sep)
{
    while (first != last) 
        stream << *first++ << sep;
    return stream;
}
 
void swap(int& a, int& b)
{
    int tmp = a;
    a = b;
    b = tmp;
}
 
void reverse(int* first, int* last)
{
    while((first != last) && (first != --last))
        swap(*first++, *last);
}
 
unsigned count_if_greater(int* first, int* last, int num)
{
    unsigned count = 0;
    while(first != last) 
        if(*first++ > num) 
            ++count;
    return count;
}
 
int gen() { return std::rand() % 21; }
 
int main()
{
    std::srand(std::time(NULL));
    const int size = 10;
    int arr[size];
    generate(arr, arr + size, gen);
    print(arr, arr + size, std::cout, " ");
    std::cout << std::endl;
    reverse(arr, arr + size);
    print(arr, arr + size, std::cout, " ");
    std::cout << std::endl;
    std::cout << count_if_greater(arr, arr + size, *arr);
    std::cout << std::endl;
    return 0;
}
1
08.01.2012, 10:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2012, 10:40
Привет! Вот еще темы с ответами:

Заполнить массив первыми ста простыми числами, и вывести массив на экран - C++
Объявите одномерный целочисленный массив в котором не более 100 элементов выполните генерацию массива первыми 100 простыми числами....

Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив - C++
ввести двумерный массив I . найти номера столбцов с положительными элементами и записать их в одномерный массив, отобразить его на экране. ...

Переписать положительные элементы массива K,кратные пяти в массив M,а остальные-в массив Q. - C++
Дан массив K(N).Переписать положительные элементы массива K,кратные пяти в массив M,а остальные-в массив Q.

Дан массив. Записать во второй массив все элементы, не совпадающие с минимальным - C++
Дан массив M(14).Записать в массив B все элементы , не совпадающие с минимальным. Cоставить блок схему программы


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

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

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