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

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

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

Одномерные Массивы. Решение уже есть. Переделать через функции. - C++

06.12.2010, 19:41. Просмотров 556. Ответов 5
Метки нет (Все метки)

Помогите решить задачу по одномерному массиву ПО ФУНКЦИЯМ. Задачи уже решены, надо их переделать по функциям.
1. Найти номер максимального по модулю элемента массива


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
#include <conio.h>
int main()
{
clrscr();
const int n = 5;
int a[n];
int max=1;
int i;
for(i=0;i<n;i++)
{cin>>a[i];
if (abs(a[i])>abs(a[max]))
max = i;
}
max++;
cout<<max;
getch();
return(0);
}
2. Найти сумму элементов массива, расположенных после первого положительного элемента.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
#include <conio.h>
int main()
{
clrscr();
const int n = 5;
int a[n];
int i,m,s=0;
for (i=0;i<n;i++)
{
cin>>a[i];
if (a[i]>0)
m=i;
if(i>=m)
s+=a[i];}
 
cout<<"s= "<<s;
getch();
return(0);
}
3. Преобразовать Массив таким образом, чтобы сначала располагались все элеменыт, целая часть которых лежит в интервале [a,b], а потом - все остальные.

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 <iostream.h>
#include <iomanip.h>
#include <math.h>
#include <conio.h>
int main()
{
clrscr();
const int n = 5;
int a[n];
int i,j=0,c,m,d;
int b[n];
cout<<"vvedite c i d";
cin>>c;
cin>>d;
for (i=0;i<n;i++)
{
cin>>a[i];
if (c<a[i]&&a[i]<d)
{
b[j] = a[i];
j++;
m=j;
}
}
j=m;
for(i=0;i<n;i++)
if (a[i]<c||a[i]>d)
{
b[j]=a[i];
j++;
}
for(j=0;j<n;j++)
cout<<setw(3)<<b[j]<<endl;
getch();
return(0);
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2010, 19:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Одномерные Массивы. Решение уже есть. Переделать через функции. (C++):

Есть ли смысл помечать функции как inline, если их прототип уже есть в .h файле? - C++
Есть ли смысл помечать функции как inline, если их прототип уже есть в .h файле? Функции в одну строчку, сразу в ретарне вычисляет...

Одномерные массивы. Найти есть ли в нем арифметическая прогрессия состоящая из трех элементов - C++
Здравствуйте! Помогите решить задачку: Дан одномерный массив. Найти есть ли в нем арифметическая прогрессия состоящая из трех элементов....

Одномерные массивы. Вычислить 30 значений функции - C++
Вычислить 30 значений функции y=ax^2+bx+c на отрезке , сохранить их в массиве У. Вычислить количество отрицательных и положительных...

Решение матричных игр. Есть у кого такая программа написанная уже... - C++
Требуется программа по решению матричных игр... С выбором размера матрицы и выдачей решения... Может кто смогёт такую сбатцать?

Одномерные массивы. Вычислить m значений функции f(x) на отрезке [a, b] - C++
a.Вычислить m значений функции f(x) на отрезке . Вычисление величины f(x) с оформить в виде функции. Аргументы и значения функций...

Переделать код через массивы - C++
Дано вещественное число A . Найти в последовательности чисел {b}_{i}=\sum _{k=1}^{i}|k+4| ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
06.12.2010, 19:50 #2
Цитата Сообщение от poseidon Посмотреть сообщение
Найти сумму элементов массива, расположенных после первого положительного элемента.
а вы уверены, что она работает правильно??? (m то мусор в памяти)
исправляйте
0
poseidon
0 / 0 / 0
Регистрация: 06.12.2010
Сообщений: 21
06.12.2010, 19:59  [ТС] #3
вроде работает, да m - мусор, не обращал внимания.
Но все таки надо решить по функциям. ps- может что то в этих программах написано неправильно, но по крайней мере у меня они все( с моими входными данными) работают.
0
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
06.12.2010, 20:19 #4
poseidon, вам просто везет, а точнее вы подобрали такие данные
0
poseidon
0 / 0 / 0
Регистрация: 06.12.2010
Сообщений: 21
11.12.2010, 16:23  [ТС] #5
Цитата Сообщение от go Посмотреть сообщение
poseidon, вам просто везет, а точнее вы подобрали такие данные
ну да, а как на счет задачи решить через функции? может мне и везет, проги переделать то надо!
0
asics
Freelance
Эксперт С++
2847 / 1784 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
11.12.2010, 17:58 #6
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
28
29
30
31
#include <iostream>
 
#define MOD(a) (a) >= 0? (a) : -(a)
 
void enter_elem(int a[], const size_t N)
{
    for(int i = 0; i < N; ++i)
    {
        std::cout << "Arr[" << i << "] = ";
        std::cin >> a[i];
    }
}
 
int get_max_elem_for_mod(int a[], const size_t N)
{
    int max = a[0];
    for(int i = 0; i < N; ++i)
        if(MOD(a[i]) > MOD(max))
            max = a[i];
 
    return max;
}
 
int main()
{
    const size_t N = 5;
    int a[N];
    enter_elem(a, N);
    std::cout << "\nMax for mod: " << get_max_elem_for_mod(a, N);
    return 0;
}
Добавлено через 17 минут
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
#include <iostream>
 
void enter_elem(int a[], const size_t N)
{
    for(int i = 0; i < N; ++i)
    {
        std::cout << "Arr[" << i << "] = ";
        std::cin >> a[i];
    }
}
 
int get_sum_after_first_pol(int a[], const size_t N)
{
    int ind_first_pol = 0, sum = 0;
 
    for(int i = N - 1; i >= 0; --i)
        if(a[i] > 0)
            ind_first_pol = i;
 
    for(int i = ind_first_pol + 1; i < N; ++i)
        sum += a[i];
 
    return sum;
}
 
int main()
{
    const size_t N = 5;
    int a[N];
    enter_elem(a, N);
    std::cout << "\nSum after first pol: " << get_sum_after_first_pol(a, N);
    return 0;
}
Добавлено через 1 час 0 минут
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
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
#include <iostream>
 
void _swap (int *a, int *b)
{
        *a ^= *b;
        *b = *a ^ *b;
        *a = *a ^ *b;
}
 
void enter_elem(int a[], const size_t N)
{
    for(int i = 0; i < N; ++i)
    {
        std::cout << "Arr[" << i << "] = ";
        std::cin >> a[i];
    }
}
 
void transform(int a[], const size_t N, int _a, int b)
{
    int j = 0, tmp  = 0;
    for(int i = 0; i < N; ++i)
    {
        if(a[i] >= _a && b >= a[i])
        {
            _swap(&a[i], &a[j]);
            ++j;
        }
    }
}
 
void print_arr(int a[], const size_t N)
{
    for(int i = 0; i < N; ++i)
        std::cout << a[i] << ' ';
}
 
int main()
{
    const size_t N = 5;
    int a[N];
    enter_elem(a, N);
    std::cout << "Enter a: ";
    int _a, b;
    std::cin >> _a;
    std::cout << "Enter b: ";
    std::cin >> b;
    transform(a, N, _a, b);
    std::cout << "\nAfter transform: ";
    print_arr(a, N);
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2010, 17:58
Привет! Вот еще темы с ответами:

Одномерные массивы (генерация чисел первыми 15 числами Фибоначчи, функции) - C++
Объявите одномерный целочисленный массив, в котором 15 элементов. Выполните генерацию массива первыми 15 числами Фибоначчи. Выведите Массив...

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

Одномерные массивы (векторы): вычислить и напечатать значения функции Y= Ak2 + Ak - sin Ak, где элементы массива А вводятся с клавиатуры - C++
Вычислить и напечатать значения функции Y= Ak2 + Ak - sin Ak где элементы массива А вводятся с клавиатуры .

Есть функция которая добавляет элемент типа int в конец массива. Как ее переделать через шаблон - C++
Есть функция которая добавляет элемент типа int в конец массива. Как ее переделать через шаблон, чтобы можно было добавлять элементы в...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.12.2010, 17:58
Ответ Создать тему
Опции темы

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