Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 12

Нужно переписать программу, используя функции

04.12.2018, 17:50. Показов 1576. Ответов 13

Студворк — интернет-сервис помощи студентам
Создайте проект с функцией. Создать функцию с одним или двумя
результатов и использовать его в основной функции.

Задание: найти индекс минимального и максимального элемента в массиве.
Вот код без фунций, проподователь требует что бы была функция, а я не понимаю что да как.

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 <pch.h>
#include <iostream>
#include <math.h>     
using namespace std;
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "Russian");
    const int N = 9;
    int n, I_max = 0, I_min = 0, f3 = 0;
    float A[N], S = 0;
    bool fmax = 0, fmin = 0;
    
    cout << ("\nВведите массив из ") << N;
    cout << ("элементов\n");
    for (n = 0; n < N; n++)
    {
        cout << ("\nВведите A[ ") << n << " ] = ";
        cin >> A[n];
    }
 
    for (n = 1; n < N; n++)
    {
        if (A[n] < A[I_min])
            I_min = n;
        if (A[n] > A[I_max])
            I_max = n;
    }
 
    if (A[I_min] != A[I_max])
    {
        for (n = 0; n < N; n++)
        {
            if (A[n] == A[I_min])
            {
                fmin = 1;
                cout << ("\nИндекс минимального элемента массива = ") << n;
            }
            if (A[n] == A[I_max])
            {
                fmax = 1;
                cout << ("\nИндекс максимального элемента массива = ") << n;
            }
            if (fmin == 1 && fmax == 0)
            {
                S += A[n];  f3 = -1;
            }
            
        }
 
        if (f3 == -1)
            cout << ("\nНет максимального элемента массива ");
        if (f3 == 1)
            cout << ("\nНет минимального элемента массива ");
    }
    else
        cout << ("\nВсе элементы массива имеют одно значение");
    
    cout << ("\nНажмите любую клавишу для завершения программы \n");
 
    return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.12.2018, 17:50
Ответы с готовыми решениями:

Нужно переписать код, используя функции
#include &lt;iostream&gt; using namespace std; const int n=5; const int m=5; int main() { setlocale (LC_ALL, &quot;Russian&quot;); int...

Переписать программу используя пользовательские функции
Переписать программу используя пользовательские функции #include &lt;tchar.h&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; ...

Переписать программу используя пользовательские функции
Переписать программу используя пользовательские функции #include &lt;tchar.h&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; ...

13
14 / 17 / 11
Регистрация: 20.10.2018
Сообщений: 98
04.12.2018, 19:56
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
63
64
65
#include <pch.h>
#include <iostream>
#include <math.h> 
using namespace std;
 
void function()
{
const int N = 9;
int n, I_max = 0, I_min = 0, f3 = 0;
float A[N], S = 0;
bool fmax = 0, fmin = 0;
 
cout << ("\nВведите массив из ") << N;
cout << ("элементов\n");
for (n = 0; n < N; n++)
{
cout << ("\nВведите A[ ") << n << " ] = ";
cin >> A[n];
}
 
for (n = 1; n < N; n++)
{
if (A[n] < A[I_min])
I_min = n;
if (A[n] > A[I_max])
I_max = n;
}
 
if (A[I_min] != A[I_max])
{
for (n = 0; n < N; n++)
{
if (A[n] == A[I_min])
{
fmin = 1;
cout << ("\nИндекс минимального элемента массива = ") << n;
}
if (A[n] == A[I_max])
{
fmax = 1;
cout << ("\nИндекс максимального элемента массива = ") << n;
}
if (fmin == 1 && fmax == 0)
{
S += A[n]; f3 = -1;
}
 
}
 
if (f3 == -1)
cout << ("\nНет максимального элемента массива ");
if (f3 == 1)
cout << ("\nНет минимального элемента массива ");
}
else
cout << ("\nВсе элементы массива имеют одно значение");
 
cout << ("\nНажмите любую клавишу для завершения программы \n");
}
int main(int argc, char* argv[])
{
setlocale(LC_ALL, "Russian");
function();
return 0;
}
1
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
04.12.2018, 20:28
Цитата Сообщение от MCGeorge2k Посмотреть сообщение
if (f3 == -1)
cout << ("\nНет максимального элемента массива ");
if (f3 == 1)
cout << ("\nНет минимального элемента массива ");
}
MCGeorge2k, в массиве всегда есть минимальное и максимальное значения. значения (так как их два) будем передавать через параметры, поэтому параметры передаём по ссылке. размер массива в условии не указан - будем его задавать с клавиатуры, поэтому применяем динамический массив:
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>
using namespace std;
 
void Index (double *a, int n, int &imin, int &imax)
{
    for (int i = 1; i < n; i++)
    {
    if(a[i]>a[imax]) imax=i;
    if(a[i]<a[imin]) imin=i;
    }
}
 
int main()
{
    int n, imin=0, imax=0;
    cout <<"n="; cin >>n;
 
    double*a = new double[n];
 
    cout <<"Enter "<<n<<" elements:\n";
    for (int i = 0; i < n; i++)
      cin >>a[i];
      
    Index (a,n,imin,imax);
    
    cout <<"index first min="<<imin<<"index first max="<<imax<<endl;    
 
    delete[]a;
system("pause");
return 0;
}
программа найдёт индекс первого минимума и первого максимума
1
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 12
04.12.2018, 22:51  [ТС]
Забыл добавить, в задании массив из 9 элементов. Ну и мы их должны ввести сами

Добавлено через 48 секунд
Yetty, Забыл добавить, в задании массив из 9 элементов. Ну и мы их должны ввести сами

Добавлено через 3 минуты
Yetty, слушай, я вижу ты разбираешься в этих делах, можешь сможешь мне помочь переделать еще пару задачек, а то у нас
Комплесные задания, там еще 2 задачки нужно переделать с функциями. Как тебе удобнее написать? Может в телеграм?
0
04.12.2018, 23:18

Не по теме:

Цитата Сообщение от MCGeorge2k Посмотреть сообщение
Забыл добавить, в задании массив из 9 элементов
не забывайте сообщать условие. если массив из 9 элементов вполне подойдёт и статический.
Цитата Сообщение от MCGeorge2k Посмотреть сообщение
можешь сможешь мне помочь
MCGeorge2k, это форум. пишите что Вам нужно в теме (одна задача - одна тема). поверьте, что есть форумчане шарящие в вопросе на порядок лучше. если что-то нужно сообщить мне лично - есть личка. набирайте 5 сообщений (или чуть больше - специально не отслеживал сколько нужно сообщений для новичков чтобы появился доступ в ЛС) - кликайте на треугольник около Вашего ника и смотрите когда появится возможность отправки ЛС (вторая строчка меню - Отправить личное сообщение).

0
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 12
04.12.2018, 23:34  [ТС]
Yetty, понял, спасибо, мне просто до четверга нужно будет сдать. Тогда сейчас накидаю пару тем.

Добавлено через 14 минут
Yetty, можете переписать с статическим массивом, потому что динамтческий мы не прохожили.
0
05.12.2018, 00:33

Не по теме:

MCGeorge2k, со статическим практически тоже самое. напишите и сбросьте в этой теме что получилось.

0
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 12
05.12.2018, 11:42  [ТС]
Yetty, что то не получается у меня, видимо лишнее удаляю что то. Просто с телефона сложно сориентироваться что и куда. Поможешь пж.

Добавлено через 44 секунды
Yetty, да и компилятор у меня тугой, иногда сам ошибки выдает от фонаря
0
05.12.2018, 14:14

Не по теме:

MCGeorge2k, сначала напишите оригинал условия задачи

0
05.12.2018, 14:21

Не по теме:

Цитата Сообщение от Yetty Посмотреть сообщение
если что-то нужно сообщить мне лично - есть личка.
А еще есть правила форума:
Обсуждение вопросов - только в теме на форуме. Приглашения к обсуждению еще где-либо (в том числе и с помощью системы личных сообщений) запрещены, за исключением коммерческих разделов.

0
 Аватар для Nishen
1357 / 856 / 365
Регистрация: 26.02.2015
Сообщений: 3,814
05.12.2018, 14:21
Цитата Сообщение от MCGeorge2k Посмотреть сообщение
да и компилятор у меня тугой, иногда сам ошибки выдает от фонаря
Что за компилятор?
0
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 12
05.12.2018, 14:32  [ТС]
Yetty, Find the indexes of the minimum and the maximum
elements of the array.
Syze of array: 9
Data type: double

Добавлено через 21 секунду
Nishen, cxx droid
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
05.12.2018, 15:24
Лучший ответ Сообщение было отмечено MCGeorge2k как решение

Решение

MCGeorge2k, такой код найдёт индекс первого минимума и первого максимума:
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
#include <iostream>
using namespace std;
 
void FindIndexes (double *a, int n, int &imin, int &imax)
{
    for (int i = 1; i < n; i++)
    {
    if(a[i]>a[imax]) imax=i;
    if(a[i]<a[imin]) imin=i;
    }
}
 
int main()
{
    int imin=0, imax=0;
    const int n=9;
    double a[n];    
 
    cout <<"Enter "<<n<<" elements:\n";
    for (int i = 0; i < n; i++)
      cin >>a[i];
      
    FindIndexes (a,n,imin,imax);
    
    cout <<"index first min="<<imin<<"  index first max="<<imax<<endl; 
 
system("pause");
return 0;
}
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
06.12.2018, 11:55
Yetty, а теперь допустим, что функция используется для массива несколько раз (допустим, осуществили преобразования), либо для нескольких массивов. Вам не кажется, что Вы тогда что-то потеряете?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2018, 11:55
Помогаю со студенческими работами здесь

Переписать программу, используя цикл Do.While
Добрый вечер! Как данную программу можно изменить, используя цикл Do..While? #include &quot;stdafx.h&quot; #include...

Переписать программу, используя другой оператор
Здравствуйте. Помогите, пожалуйста, переписать программу, не используя &quot;do while&quot;, а используя &quot;for&quot;. Вот текст...

Нужно написать программу с++ используя функции
В той из них где главная диагональ содержит больше положительных элементов найти количество элементов, расположенных выше главной диагонали...

Нужно переписать программу по разложению в ряд Фурье через процедуры , т.е. заменить все функции процедурами
module CVal real,parameter::T=1.,pi=3.1415926 integer,parameter::m=1 real,dimension(m)::a,b integer::i end module Cval ...

Переписать программу, используя рекурсию
Сказали внести изменение в программу, сделать так,чтобы всё высчитывалось через рекурсию. Не понимаю, как это можно сделать. Скоро...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru