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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2015, 11:42   #1
.kbz
Пользователь
 
Регистрация: 10.12.2014
Сообщений: 19
По умолчанию Помогите с задачами ))

Задание 1:
Дана матрица размера M×N. Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значению всех ее элементов.
2.Дана матрица размера M×N. Зеркально отразить ее элементы относительно горизонтальной оси симметрии матрицы (при этом поменяются местами строки с номерами 1 и M, 2 и M − 1 и т.д.).

Задание 3:
В матрице вещественных чисел D(n×m) найти и вывести номера строк, упорядоченных по возрастанию элементов. Сформировать вектор С(mЧ2) из номеров минимальных значений столбцов матрицы.
Пишу на MinGW
.kbz вне форума Ответить с цитированием
Старый 23.03.2015, 12:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код ввода матриц показать сможешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.03.2015, 12:23   #3
.kbz
Пользователь
 
Регистрация: 10.12.2014
Сообщений: 19
По умолчанию Я пробовала писать вот так не знаю правильно или нет

2 Задание
Код:
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{ 
    setlocale (LC_ALL,"");
    const int n = 3, m = 3;
    int arr[m][n], sum = 0;
    cout << "Ââåäèòå çíà÷åíèå ýëåìåíòîâ ìàññèâà:" << '\n';
    for (int i = 0; i < n; i++){
        for (int j = 0; j < m; j++){
            cout << "Ýëåìåíò ìàññèâà ["<< i <<"]["<<j<<"]:" << endl;
            cin >> arr [i][j];
        }
    }
    cout << endl;
    for (int i = 0; i < n; i++)
	{
        for(int j = 0; j < m; j++)
		{
            cout << arr [i][j]<<"";
        }
        cout << endl;
    }
    cout << endl;
    for(int i = 0; i < n; i++)
	{ 
        cout << endl; 
        for(int j = 0; j < m; j++)
            cout << arr[ i ][ j ] << "";
    }
    for(int i = 0, x = n-1; i < n/2; i++, x--) 
        for(int j = 0; j < m; j++)
		{
            sum = arr[ i ][ j ]; 
            arr[ i ][ j ] = arr[ x ][ j ]; 
            arr[ x ][ j ] = sum;
        }
    cout << endl; 
    for(int i = 0; i < n; i++){
        cout << endl; 
        for(int j = 0; j < m; j++)
            cout << arr[ i ][ j ] << "" ;
    }
    system("PAUSE");
    return 0;
}

Последний раз редактировалось Stilet; 23.03.2015 в 13:07.
.kbz вне форума Ответить с цитированием
Старый 23.03.2015, 13:11   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ага. Уже хорошо. Тогда предлагаю слегонца схитрить:
Код:
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{ 
    setlocale (LC_ALL,"");
    const int n = 3, m = 3;
    int arr[m][n], sum = 0;

    for (int i = 0; i < n; i++){
        for (int j = 0; j < m; j++){
            cin >> arr [i][j];
        }
    }
    cout <<"Первак:"<< endl;
    for (int i = 0; i < n; i++){
        for(int j = 0; j < m; j++)     cout << arr [i][j]<<"\t";
        cout << endl;
    }

    cout <<"АцЫтонъ:"<< endl;
    for (int i = n-1; i>=0; i--){
        for(int j = 0; j < m; j++)     cout << arr [i][j]<<"\t";
        cout << endl;
    }

    system("PAUSE");
    return 0;
}
Годится?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.03.2015, 13:19   #5
.kbz
Пользователь
 
Регистрация: 10.12.2014
Сообщений: 19
По умолчанию А первое еще посмотрите)

Код:
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{ 
	setlocale (LC_ALL,"");
    //Размер массива
    const int n = 3, m = 3;
    //Инициализация массива
    int arr[m][n];
    //Вывод матрицы 
    cout << "Введите значения элементов массива:" << '\n';
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            cout << "Элемент массива ["<< i <<"]["<<j<<"]:" << endl;
			cin >> arr [i][j];
        }
	
    }
	cout << endl;
	for (int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			cout << arr [i][j]<<"";
		}
		cout << endl;
	}
	cout << endl;
 
    //Поиск среднего значения
    double sum = 0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            sum += arr[i][j];
        }
    }
    sum /= (n * m);
 
    // поиск строки и столбца элемента матрицы, наиболее близкого к среднему значению всех его элементов
    int a = 0, b = 0;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (abs(sum - arr[a][b]) > abs(sum - arr[i][j]))
            {
                a = i;
                b = j;
            }
        }
    }
 
    //Вывод результата
    cout << "Номер строки :" << a + 1 << '\n';
    cout << "Номер столбца:" << b + 1 << '\n';
    return 0;
}

Последний раз редактировалось Stilet; 23.03.2015 в 13:27.
.kbz вне форума Ответить с цитированием
Старый 23.03.2015, 13:36   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну... допустим так:
Код:
#include <iostream>
#include <cmath>
 
using namespace std;
 
int main()
{ 
	setlocale (LC_ALL,"");
    //Размер массива
    const int n = 3, m = 3;
    //Инициализация массива
    int arr[m][n],iavg=0,javg=0; double avg=0,avgx;
    //Вывод матрицы 
    cout << "Введите значения элементов массива:" << '\n';
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            cout << "Элемент массива ["<< i <<"]["<<j<<"]:" << endl;
			cin >> arr [i][j]; avg+=arr[i][j];
        }
	
    }
	cout << endl;
	for (int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			cout << arr [i][j]<<"";
		}
		cout << endl;
	}
	cout << endl;
    avg/=n*m;

    
    avgx=abs(arr[i][j]-arr[iavg,javg]); 
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if(abs(arr[i][j]-arr[iavg,javg])<avgx){
              iavg=i; javg=j; avgx=abs(arr[i][j]-arr[iavg,javg]); 
            };
        }
    }
    
    cout << "Номер строки :" << avgi + 1 << '\n';
    cout << "Номер столбца:" << avgj + 1 << '\n';
    return 0;
}
Опять таки: Это идея. Не копипасти. Разберись и проанализируй.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.03.2015, 13:48   #7
.kbz
Пользователь
 
Регистрация: 10.12.2014
Сообщений: 19
По умолчанию

Спасибо большое)
.kbz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с задачами! Сиськи Общие вопросы C/C++ 3 11.04.2014 20:34
Помогите с задачами. GodsAndGlory Общие вопросы C/C++ 1 26.05.2008 19:01