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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2009, 19:18   #1
varlonec
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 24
По умолчанию Задача на языке С++

помогите пожалуйста решить задачу:

для прямоугольной матрицы упорядочить ее строки по возрастанию наибольших элементов строк.
varlonec вне форума Ответить с цитированием
Старый 10.12.2009, 20:17   #2
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

Код:
#include <iostream>

using namespace std;

int max(int a[100], int n)
{
	int max = -sizeof(int);
	for (int i = 0; i < n; i++)
		if (max < a[i]) max = a[i];
	return max;
}

int main()
{
	int m, n;
	int a[100][100];
	cout << "Введите размерность матрицы\n";
	cin >> m >> n;
	cout << "\nВведите матрицу\n";
	for (int i = 0; i < m; i++)
		for (int j = 0; j < n; j++)
			cin >> a[i][j];
	//сортировка
	for (int i = 0; i < m - 1; i++)
		for (int j = i + 1; j < m; j++)
			if (max(a[i], n) > max(a[j], n))
				for (int k = 0; k < n; k++)
				{
					int tmp = a[i][k];
					a[i][k] = a[j][k];
					a[j][k] = tmp;
				}
	cout << "\nРезультат:\n";
	for (int i = 0; i < m; i++)
	{
		for (int j = 0; j < n; j++)
			cout << a[i][j] << ' ';
		cout << endl;
	}
	system("pause");
}

Последний раз редактировалось Alex_FF; 10.12.2009 в 20:19.
Alex_FF вне форума Ответить с цитированием
Старый 10.12.2009, 20:42   #3
varlonec
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 24
По умолчанию спосибо за прыдыдущюю задачу

помогите пожалуйста решить задачу:

составить функцию с оператором "return" , которая возвращает значение 0, если последовательность натуральных чисел а1,а2,...,аn не образует арифметическую прогрессию или число, равное разности арифметической прогрессии.
varlonec вне форума Ответить с цитированием
Старый 10.12.2009, 22:26   #4
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

Код:
#include <iostream>

using namespace std;

int check(int a[100], int n)
{
	int d;
	d = a[1] - a[0];
	for (int i = 2; i < n; i++)
		if (a[i] - a[i - 1] != d) return 0;
	return d;
}

int main ()
{
	int a[100];
	int n;
	cout << "Введите длину последовательности\n";
	cin >> n;
	cout << "Введите последовательность\n";
	for (int i = 0; i < n; i++)
		cin >> a[i];
	cout << "\nРезультат:\n" << check(a, n) << endl;
	system("pause");
	return 0;
}

Последний раз редактировалось Alex_FF; 10.12.2009 в 23:16.
Alex_FF вне форума Ответить с цитированием
Старый 11.12.2009, 10:45   #5
varlonec
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 24
По умолчанию спасибо за предыдущюю задачу

помогите пожалуйста решить задачу:

Дан список, элементы которого являются действительными числами. Найти отклонения каждого элемента от среднего значения.
varlonec вне форума Ответить с цитированием
Старый 11.12.2009, 12:08   #6
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

динамический список или массив?
Alex_FF вне форума Ответить с цитированием
Старый 14.12.2009, 14:25   #7
varlonec
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 24
По умолчанию

динамический список
varlonec вне форума Ответить с цитированием
Старый 14.12.2009, 15:44   #8
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

что за среднее значение? его пользователь вводит?
Количество элементов в списке вводится или нет?
Alex_FF вне форума Ответить с цитированием
Старый 14.12.2009, 16:22   #9
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

если считать, что 1) среднее значение - это среднее арифметическое всех элементов списка, и 2) последовательность элементов вводится в строку и количество элементов заранее не известно, то вот решение:
Код:
#include <iostream>

using namespace std;

struct list
{
	float data;
	list *next;
};
typedef list* listptr;

int main()
{
	listptr d, tmp;
	float medium;
	d = new list;
	d -> next = NULL;
	tmp = d;
	char symbol = NULL;
	cout << "Введите список \n\n";
	while (symbol != '\n')
	{
		cin >> tmp -> data;
		tmp -> next = new list;
		tmp = tmp -> next;
		tmp -> next = NULL;
		cin.get(symbol);
	}
	float s = 0;
	int n = 0;
	tmp = d;
	while (tmp -> next != NULL)
	{
		s += tmp -> data;
		n++;
		tmp = tmp -> next;
	}
	medium = s / n;
	tmp = d;
	cout << "\n\n\nРезультат:\n\n";
	while (tmp -> next != NULL)
	{
		cout << tmp -> data - medium << endl;
		tmp = tmp -> next;
	}
	system("pause");
	return 0;
}
Alex_FF вне форума Ответить с цитированием
Старый 14.12.2009, 16:29   #10
varlonec
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 24
По умолчанию

количество элементов в списке вводится. Среднее знчение - это сумма всех элементов поделенное на количество этих элементов, оно не вводится пользователем.
varlonec вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на языке Pascal. Рекурсия. (FainT) Помощь студентам 6 23.05.2009 15:45
Задача на языке Паскаль! P.S: Дикая!! Ирина### Помощь студентам 3 20.05.2009 07:47
Задача на языке Паскаль Ирина### Помощь студентам 3 19.02.2009 18:07