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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2012, 15:15   #1
Truebus
 
Регистрация: 28.03.2012
Сообщений: 4
По умолчанию Проблема с сортировкой и нахождением максимального елемента

Задание состоит в том что из матрицы выбрать 1 столбик или ряд,это я зделал,
но затем я столкнулса с проблемой отсортировать этот массив и найти максимальний элемент,
но у меня не получаетса найти мах элемент и отсортироватьБоно как бы просто игнорирует
вот код:
Код HTML:
#include <iostream>
#include <conio.h>
#include <math.h>
#include <stdio.h>
#include <locale.h>
#include <iomanip>
#include <stdlib.h>


using namespace std;

int main()
{
	setlocale(LC_ALL,"Rus");
	const  int size=5;
	double a[size][size],summa[size],x[size];
    int i,j;
	float res=0,max,min,sum,u;
  cout<<("Matrix a:\n");  
for( int i=0;i<size;i++)
{
for(int j=0;j<size;j++)
                {
                a[i][j] = (pow((double)2,-i))*(i+4.3)*sqrt(fabs((double)((i*i+j*j)*(i-1.5)*(j-4.2))));
				cout << setw(11) << a[i][j];
                }
                cout << endl<<endl;
} 
max=a[0][0];
for( int i=0;i<size;i++)
{
for(j=0;j<size;j++)
	if (a[i][j]>max)
	{
		max=a[i][j];
	}
	
}
cout<<"maxelem="<<max<<endl<<endl;
for(int j=0;j<size;j++)
{
	summa[j]=0;
	for( int i=0;i<size;i++)
	{	
			summa[j]+=a[i][j];
	}
	cout<<setw(5)<<"sum="<<summa[j];
}
cout<<endl<<endl;
for(int j=0;j<size;j++)
{
	res+=summa[j];
}
cout<<"summa(matrix)="<<res<<endl<<endl;
max=summa[0];
for(j=0;j<size;j++)
	if (summa[j]>max)
	{
		max=summa[j];
	}
	cout<<"maxelem="<<max<<endl<<endl;
min=summa[0];
for(j=0;j<size;j++)
	if(min>summa[j])
	{
	min=summa[j];
	}
	cout<<"minelem="<<min<<endl<<endl;
for(j=0;j<1;j++)
{
	sum=min+max;
	cout<<"sum(min)(max)="<<sum<<endl<<endl;
}
for (i=0;i<1;i++)
{
	for (j=0;j<2;j++)
	{
		res=summa[0]/summa[1];
	
	}
cout<<"divresult="<<res<<endl<<endl;
}
cout<<("Vektor X:\n");
		if (res>2)
		{
			for (i=0;i<1;i++)
	{
	for (i=0;i<size;i++)
		{
	x[i]= *a[i];
	cout<<setw(10)<<x[i];
		}		
     cout<<endl;
		}
		}
		else
{
	for (i=0;i<1;i++)
	{
for (j=0;j<size;j++)
{
	x[i]=a[0][j];
	cout<<setw(10)<<x[i];
		 }
        cout<<endl;
}
		}
		
		int t;
			
			for (i=0;i<size;i++)
			{
				if (x[i]>x[i+1])
				{
					t=x[i];
			x[i]=x[i+1];
			x[i+1]=t;
			
				}
				else
				{
					
					cout<<setw(10)<<x[i];
				}
			}
			cout<<endl;
			
max=x[0];
for(int i=0;i<size;i++)
{
	if (x[i]>max)
	{
		max=x[i];
	}
}cout<<"maxelem="<<max<<endl<<endl;	

	

		

		for(i=0;i<size;i++)
		{
u=pow((double)max,(0.5,log(fabs((double)(i)))))+sqrt(fabs((double)i+(i-1)));
		}
		cout<<"U="<<u<<endl<<endl;
		
		 
	system("pause\n");
	}

Последний раз редактировалось Truebus; 28.03.2012 в 15:18.
Truebus вне форума Ответить с цитированием
Старый 28.03.2012, 17:35   #2
LiuLiuJons
Форумчанин
 
Регистрация: 28.12.2011
Сообщений: 124
По умолчанию

Странная у вас сортировка.
И вот тут ошибка была:
Код:
if (res>2)
	{
		for (i=0;i<size;i++)
			{
			x[i]= *a[i];
			cout<<setw(10)<<x[i];
			}		
		cout<<endl;
	}
else
	{
	for (i=0;i<1;i++)
		{
			for (j=0;j<size;j++)
			{
			x[j]=a[0][j];
			cout<<setw(10)<<x[j];
			}
			cout<<endl;
		}
	}
Только интересует, что вот это значит и зачем этот цикл нужен (в вышеуказанном коде)?:
Код:
for (i=0;i<1;i++)
Ведь это просто значит выполниться один раз!

А сортировку делайте правильно (пузырьком например):
Код:
float t = 0.0;			
for (i = 1; i < size; i++) {
	for (j = 0; j < (size - i); j++) {
		if  (x[j] > x[j+1])  {
					t = x[j];
					x[j] = x[j + 1];
					x[j + 1] = t;
				}
			}

		}

for (i = 0; i < size; i++)
	cout<<setw(10)<<x[i];
cout<<endl;
И всё будет работать
"Думай не о задаче, а о решении" (с)
LiuLiuJons вне форума Ответить с цитированием
Старый 29.03.2012, 12:56   #3
Truebus
 
Регистрация: 28.03.2012
Сообщений: 4
По умолчанию

Спасибо огромное теперь все работает
Truebus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПРОБЛЕМА С СОРТИРОВКОЙ S@n4eeeeez Помощь студентам 4 19.01.2012 21:28
Проблема с сортировкой matbe14 Помощь студентам 0 29.09.2011 11:16
Проблема с сортировкой Anubys Помощь студентам 0 19.04.2011 17:10
Проблема с нахождением корня нелинейного уравнения (Fortran 77) reafantu Помощь студентам 7 03.03.2010 19:42
Проблема с нахождением максимума с помощью Excel-функции. Дятел Microsoft Office Excel 3 31.03.2009 13:28