Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ Помогите Решить задачу в Borland C/C++

Автор: SisDAn 15.3.2011, 20:28

В массиве из 15 элементов необходимо поменять местами максимальный и минимальный значения

Вот что накидал !!!

#include <iostream.h>
#include <process.h>
#include <conio.h>
int main()
{
clrscr();
int a[15],i,n;
float max=a[0], min=a[0];
cout<<"vvedite n:";
cin>>n; //КОЛ ЗНАЧЕНИЙ В МАССИВЕ
for(i=0;i<n;i++)
{
if(a[i]>max)max=a[i]; //БЛОК ПОИСКА
if(a[i]<min)min=a[i]; //МИН И МАК
}



Вопрос как поменять значения в массиве Min , Max

Автор: Тролль 15.3.2011, 20:34

Надо зафиксировать также какой номер у максимального элемента.
Например так (k = 0 - номер максимального элемента):
if (a[i]>max)
{
k = i;
max = a[i];
}
А в конце (l - номер минимального элемента)
s = a[k];
a[k] = a[l];
a[l] = s;

Автор: SisDAn 15.3.2011, 20:36

хорошо а поточнее я в программировании не силён!!!

Автор: Тролль 15.3.2011, 20:37

Что именно нужно поточнее?

Автор: SisDAn 15.3.2011, 20:38

как зафиксировать к=0
и вывести на экран

Автор: Тролль 15.3.2011, 20:46

В самом начале написать int k = 0
А зачем его выводить?

Автор: SisDAn 15.3.2011, 20:47

ответ надо показать на экране ! задание такое !
Щас попробую и отпишусь!

Автор: граф Монте-Кристо 15.3.2011, 20:53

1)У Вас же задано, что в массиве 15 элементов, зачем вводить n с клавиатуры?
2)Где, собственно, ввод самих элементов массива?

Автор: SisDAn 15.3.2011, 21:06

Я только учусь 1 курс 1 семестр ЗА ОЧКИ пытаюсь хоть как то разобраться!!!

Вот так я правельно понял ???
int main()
{
clrscr();
int a[15],i,n,s,k;
float max=a[0], min=a[0];
cout<<"vvedite n:";
cin>>n; //КОЛ ЗНАЧЕНИЙ В МАССИВЕ
for(i=0;i<n;i++)
{
if(a[i]>max)max=a[i]; //БЛОК ПОИСКА
if(a[i]<min)min=a[i]; //МИН И МАК
if (a[i]>max)
int k=0;
max=a[i];
s=a[k];
a[k]=a[1];
a[1]=s;
Ругается на К=0

Автор: граф Монте-Кристо 15.3.2011, 21:31

Нет.
Чтобы правильно сделать float max=a[0], min=a[0]; - нужно, чтобы хотя бы a[0](а,желательно,и все остальные элементы массива) было задано.
Кроме того,в глаза бросается различное количество открывающих и закрывающих фигурных скобок,а так же совсем не понятно, что Вы имели в виду после последнего if'а.
И определитесь, на чём Вы пишете - С или С++. В первом случае советую книжку Кернигана и Ритчи, во втором - Страуструпа или Шилдта.

Автор: Тролль 15.3.2011, 21:31

int main()
{
clrscr();
int a[15],i,n,s,k=0;
float max=a[0], min=a[0];
cout<<"vvedite n:";
cin>>n; //КОЛ ЗНАЧЕНИЙ В МАССИВЕ
for(i=0;i<n;i++)
{
if(a[i]<min)min=a[i];
if (a[i]>max)
{
max=a[i];
k=i;
}

Автор: SisDAn 15.3.2011, 21:57

Ладно народ спасибо до завтра !!! А то вставать в 7:00!
Завтра буду разбираться!

Автор: nik77714 16.3.2011, 9:56

ВОТ КАК ТО ТАК! НАВЕРНО (ЕСЛИ Я ПРАВИЛЬНО ПОНЯЛ)

#include <iostream.h>
#include <process.h>
#include <conio.h>
int main()
{
clrscr();
int a[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},n,i,k=0,l=0;
int max=a[0],min=a[0];
for(i=0;i<15;i++)
cout<<a[i]<<" ";
{
if(a[i]<min)min=a[i];
if(a[i]>max)
max=a[i];
k=i;
}

БОЛЬШАЯ ПРОСЬБА, ЕСЛИ НЕПРАВИЛЬНО, ТО ДАТЬ РЕДАКТИРОВАННЫЙ ОТВЕТ С ОБЪЯСНЕНИЯМИ helpsmilie.gif

Автор: nik77714 16.3.2011, 15:28

Итог таков:

#include <iostream.h>
#include <process.h>
#include <conio.h>
int main()
{
clrscr();
int a[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},i,min,max;
max=a[0];
min=a[0];
for(i=0;i<15;i++)
{
cout<<a[i]<<' ';
}
for(i=0;i<15;i++)
{
if(a[i]<min)
{
min=a[i];
}
else if(a[i]>max)
{
max=a[i];
}
}
cout<<endl;
cout<<max;
cout<<endl;
cout<<min;
cout<<endl;
system("pause");
return 0;
}

находим max и min данного массива и выводим на экран!

ВОПРОС: как вписать перестановку местами?



Автор: граф Монте-Кристо 16.3.2011, 17:14

Чтобы осуществить перестановку,надо знать индексы переставляемых элементов. Об этом Вам Тролль уже говорил.

Автор: SisDAn 16.3.2011, 19:26

А как наитй индексы???
#include <iostream.h>
#include <process.h>
#include <conio.h>
int main()
{
clrscr();
int a[15]={45,76,43,3,6,9,65,23,64,3,5,92,22,33,10},min,max,i,k,l;
max=a[0];
min=a[0];
for(i=0;i<15;i++)
{
cout<<a[i]<<" ";
}
for(i=0;i<15;i++)
{
if(a[i]<min)
{
min=a[i];
}
else if(a[i]>max)
{
max=a[i];
}
}

cout<<endl;
cout<<max;
cout<<endl;
cout<<min;
cout<<endl;

for(i=0;i<15;i++)
{
cout<<a[i]<<" ";
}
system("pause");
return 0;
}
я нашёл макс и мин !!!

у нас есть индекс MAX и MIN Как их поменять местами???

Автор: SisDAn 16.3.2011, 20:00

Народ HELP !!!!

Автор: Тролль 16.3.2011, 20:02

Я же писал уже.

Автор: SisDAn 16.3.2011, 21:56

Народ как построить математическую модель к заданию ??? Прогу мы написали!!!

Автор: SisDAn 17.3.2011, 20:35

#include <iostream.h>
#include <process.h>
#include <conio.h>
int main()
{
clrscr();
int a[15]={45,76,43,3,6,9,65,23,64,4,5,92,22,33,10},min,max,i,k,l;
max=a[0];
min=a[0];
int minposition=0;
int maxposition=0;
for(i=0;i<15;i++)
{
cout<<a[i]<<" ";
}
for(k=0;k<15;k++)
{
if(a[k]>max)
{
max=a[k];
maxposition=k;
}
else if(a[k]<min)
{
min=a[k];
minposition=k;
}
}
a[minposition]=max;
a[maxposition]=min;

cout<<endl;
cout<<"max"<<max;
cout<<endl;
cout<<"min"<<min;
cout<<endl;
cout<<endl;
cout<<"new matrix: ";
cout<<endl;
for(i=0;i<15;i++)
{
cout<<a[i]<<" ";
}
getch() ;

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)