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

Нужно из массива переделать в функцию - C++

Восстановить пароль Регистрация
 
veskerx
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 9
28.12.2012, 13:38     Нужно из массива переделать в функцию #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
32
33
34
35
36
37
38
39
40
41
#include "stdafx.h"
#include <iostream>
#include <math.h>
 
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0,"russian");
 
    int N, min;
    printf("Введите N: ");
    scanf("%d", &N);
 
    int* myarr = new int[N];
 
    cout << endl;
    printf("Исходный массив: ");
    for(int i=0; i<N; i++)
    {
        myarr[i] = rand()%60-30 ;
        printf("%d", myarr[i]); printf(" ");
    }
    min = myarr[0];
    for (int i=0; i<N;i++)
    {
        if (myarr[i]<min) min=myarr[i];
    }
        cout << endl;
        cout << endl;
        printf("Наибольшее отрицательное число: ");
        printf("%d", min);
 
 
    cout << endl;
    cout << endl;
    system("pause");
 
    return 0;
}
Вот само задание: Дано натуральное n и последовательность из n чисел. Найти величину наибольшего
отрицательного числа в этой последовательности.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2012, 13:38     Нужно из массива переделать в функцию
Посмотрите здесь:

C++ Нужно переделать
Нужно переделать ввод массива C++
C++ Необходимо переделать функцию
C++ Переделать функцию c указателем на int, на функцию с указателем на void
Переделать процедуру в функцию C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MilosedOFF
3 / 3 / 0
Регистрация: 13.06.2012
Сообщений: 50
28.12.2012, 14:09     Нужно из массива переделать в функцию #2
Наверное вы не поняли вашего препода. Массив - это совокупность элементов, а функция -это группа операторов у которой есть имя. Ну т.е. заменить массив на функцию здесь не получится. Возможно ваш препод имел ввиду вашу ошибку в алгоритме: вы ищите наименьший элемент последовательности, а не наибольший отрицательный, как сказано в задание. Неужели вас даже не смущает название переменной - min?
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
28.12.2012, 14:21     Нужно из массива переделать в функцию #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
#include "stdafx.h"
#include <iostream>
 
int main()
{
    int n,digit,min;
    bool flag=true;
    std::cin>>n;
    while(n-- > 0)
    {
        std::cin>>digit;
        if(flag && digit<0)
        {
            min=digit;
            flag=false;
        }
        else if(digit < 0 && digit > min)
            min=digit;
    }
    std::cout<<min<<std::endl;
    system("pause");
    return 0;
}
Добавлено через 1 минуту
MilosedOFF, то что она говорит переделать из массива в функцию - да, звучит немного()) странно.Но понять можно.Но вот насчёт задания - оно вполне нормальное
veskerx
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 9
28.12.2012, 14:28  [ТС]     Нужно из массива переделать в функцию #4
Цитата Сообщение от MilosedOFF Посмотреть сообщение
Наверное вы не поняли вашего препода. Массив - это совокупность элементов, а функция -это группа операторов у которой есть имя. Ну т.е. заменить массив на функцию здесь не получится. Возможно ваш препод имел ввиду вашу ошибку в алгоритме: вы ищите наименьший элемент последовательности, а не наибольший отрицательный, как сказано в задание. Неужели вас даже не смущает название переменной - min?
насчёт min ничего сказано небыло, препод лишь указал на
C
1
int* myarr = new int[N];
что использование массива неоправдано

Добавлено через 35 секунд
ZaMaZaN4iK спасибо=)
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
28.12.2012, 14:30     Нужно из массива переделать в функцию #5
вот через функцию
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
#include <iostream>
 
void search_min(bool &flag,int digit,int &min);
 
int main()
{
    int n,digit,min;
    bool flag=true;
    std::cin>>n;
    while(n-- > 0)
    {
        std::cin>>digit;
        search_min(flag,digit,min);
    }
    if(!flag)
        std::cout<<min<<std::endl;
    else
        std::cout<<"Not Found"<<std::endl;
    system("pause");
    return 0;
}
 
void search_min(bool &flag,int digit,int &min)
{
    if(flag && digit<0)
        {
            min=digit;
            flag=false;
        }
        else if(digit < 0 && digit > min)
            min=digit;
}
veskerx
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 9
28.12.2012, 14:32  [ТС]     Нужно из массива переделать в функцию #6
ZaMaZaN4iK , спасибо, очень благодарен, а то зачёт из-за этого не ставят=)
Yandex
Объявления
28.12.2012, 14:32     Нужно из массива переделать в функцию
Ответ Создать тему
Опции темы

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