Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2019, 21:31   #1
sasha1504
 
Регистрация: 20.10.2019
Сообщений: 9
По умолчанию с++ добавить минимум

Есть рабочий код с нахождением максимума.помогите,пожалуйста добавить нахождение минимума.
задание:Дано целое число N. Определить максимальное и минимальное произведение
соседних цифр в числе N.
код:
#include <iostream>
#include <conio.h>

using namespace std;
int getMax(int * mass, int &SIZE)
{
int max = mass[0] - mass[1];
int proiz = 0;

for(int i = 0; i < SIZE - 1; i++)
{
proiz = mass[i] * mass[i+1];
if(max < proiz)
max = proiz;
proiz = -1000000;

}

return max;
}

int main() {
int SIZE;
cout «"Vvedite razmer massiva: ";
cin »SIZE;
int *mass = new int[SIZE];

cout « "vvedite mass: ";
int i;
for(int i = 0; i < SIZE; i++)
cin » mass[i];

cout «"max proiz = " « getMax(mass, SIZE) « endl;
system ("pause");
delete [] mass;
return 0;
}
sasha1504 вне форума Ответить с цитированием
Старый 20.10.2019, 21:57   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

В рабочем коде не можешь найти строку, в которой надо изменить всего один символ?
Подсказка - это строка с условным оператором.

"Расслабься."
"А я и не напрягаюсь".
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 20.10.2019, 22:25   #3
sasha1504
 
Регистрация: 20.10.2019
Сообщений: 9
По умолчанию

мне не нужно менять,нужно добавить
sasha1504 вне форума Ответить с цитированием
Старый 20.10.2019, 22:30   #4
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Так добавляйте тоже самое с измененным условием на поиск минимума, и max
на min изменить или на то что удобно (хоть на pux).
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 20.10.2019, 22:50   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Цитата:
мне не нужно менять,нужно добавить
Я понимаю, что это грубо. У вас полная атрофия мозга?
1. Берёте ваш код.
2. Выделяете функцию поиска максимума.
3. Копируете выделенное в буфер.
4. Вставляете из буфера в нужное место.
5. Меняете имя вставленной функции на благозвучное для вашего уха.
6. Ищете строку с условным оператором во вставленном коде.
7. Заменяете условие на новое (это один символ).
8. Вставляете вызов в тело программы.
9. Контролируете правильность работы посредством вывода на экран.

Есть более простой путь - фриланс. Это рядом, несколько строк ниже.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 20.10.2019, 22:53   #6
sasha1504
 
Регистрация: 20.10.2019
Сообщений: 9
По умолчанию

выдает ошибку в строке int getMin(int*mass,int&SIZE)
#include <iostream>
#include <conio.h>

using namespace std;
int getMax(int * mass, int &SIZE)
int getMin(int*mass,int&SIZE)
{
int max = mass[0] - mass[1];
int max_proiz = 0;
int min_proiz=-1000000
for(int i = 0; i < SIZE - 1; i++)
{
max_proiz = mass[i] * mass[i+1];
if(max < max_proiz)
max = max_proiz;
max_proiz = -1000000;
{min_proiz=mass[i]*mass[i+1];
if(min>min_proiz)
min=min_proiz;}
}

return max;
}

int main() {
int SIZE;
cout <<"Vvedite razmer massiva: ";
cin >>SIZE;
int *mass = new int[SIZE];

cout << "vvedite mass: ";
int i;
for(int i = 0; i < SIZE; i++)
cin >> mass[i];

cout <<"max proiz = " << getMax(mass, SIZE) << endl;
cout <<"min proiz = " << getMin(mass, SIZE) << endl;
system ("pause");
delete [] mass;
return 0;
}
sasha1504 вне форума Ответить с цитированием
Старый 20.10.2019, 23:24   #7
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

У вас такой уровень знаний?
Вы хоть чуть-чуть напрягли свой мозг?
Что вы сотворили?

Код:
int getMax(int * mass, int &SIZE)
{
int max = mass[0] - mass[1];
int proiz = 0;

for(int i = 0; i < SIZE - 1; i++)
{
   proiz = mass[i] * mass[i+1];
   if(max < proiz)
      max = proiz;
}
return max;
}
Это код поиска максимума. Не занимаясь переименовыванием внутренних переменных можно написать так:
Код:
int getMin(int * mass, int &SIZE)
{
int min = mass[0] - mass[1];
int proiz = 0;

for(int i = 0; i < SIZE - 1; i++)
{
   proiz = mass[i] * mass[i+1];
   if(min > proiz)
      min = proiz;
}
return min;
}
Для чистоты лучше переменную max заменить на min. Вроде всё.
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 20.10.2019, 23:38   #8
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию

Еще один знак изменить, не плохо бы было:
Код:
int min = mass[0] + mass[1];
Весь листинг:
Код:
#include <stdio.h>
#include <windows.h>
#include <iostream>
#include <conio.h>
#include <clocale>

using namespace std;
int getMax(int* mass, int& SIZE)
{
	int max = mass[0] - mass[1];
	int proiz = 0;
	for (int i = 0; i < SIZE - 1; i++)
	{
		proiz = mass[i] * mass[i + 1];
		if (max < proiz)
			max = proiz;

	}
	return max;
}
int getMin(int* mass, int& SIZE)
{
	int min = mass[0] + mass[1];
	int proiz = 0;
	for (int i = 0; i < SIZE - 1; i++)
	{
		proiz = mass[i] * mass[i + 1];
		if (min > proiz)
			min = proiz;

	}
	return min;
}
int main() {
	setlocale(LC_CTYPE, "rus");
	cout << "Пример русифицированной консольки\n";
	int SIZE;
	cout << "Введите размер массива: ";
	cin >> SIZE;
	int* mass = new int[SIZE];
	cout << "Введите массив разделяя символы пробелом: ";
	int i;
	for (int i = 0; i < SIZE; i++)
		cin >> mass[i];
	cout << "Максимальное произведение = " << getMax(mass, SIZE) << endl;
	cout << "Минимальное произведение = " << getMin(mass, SIZE) << endl;
	system("pause");
	delete[] mass;
	return 0;
}
I am not a wizard, I am just learning.
Desc вне форума Ответить с цитированием
Старый 20.10.2019, 23:58   #9
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Не обратил внимание, но там похоже должно быть только умножение.
Это начальная инициализация переменной.
Некоторые инициализируют такие переменные Max или Min значением для данного типа или, исходя из условия задачи например нулём.
Правильным будет инициализация значением, которое уже задано или вычисляется из заданных.
Например, при поиске минимума или максимума min или max следует инициализировать первым значением массива.
Тут ищется минимум/максимум произведения. Вот произведение первых элементов и надо вставить.
Кроме этого можно цикл начинать со следующего элемента, но это пока мелочи.
Возможно дойдёт сам ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 21.10.2019, 09:11   #10
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

....

Последний раз редактировалось digitalis; 21.10.2019 в 11:15. Причина: причина все та же
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Минимум и максимум в VBA ksibir Помощь студентам 1 23.12.2016 20:33
Минимум-максимум noisor Паскаль, Turbo Pascal, PascalABC.NET 2 16.11.2014 22:40
Паскаль-минимум Ильгизуля Помощь студентам 7 16.04.2013 20:18
к элементам первой половины массива добавить минимум, а к элементам второй - добавить максимум specialist Паскаль, Turbo Pascal, PascalABC.NET 3 08.05.2011 01:46
Максимум-минимум Freeman-des Помощь студентам 8 22.12.2010 20:13