Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Borland 3.1]вывод матрицы на экран, вывод матрицы на экран 
:(
    Опции темы
npocTo
Дата 13.5.2009, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.5.2009

Репутация: нет
Всего: нет



Задача состоит в том:
Найти наибольший и наименьший  элемент матрицы B(N x M) и поменять их местами.После чего вывести на экран матрицу.
Огромное спасибо за помосчь
Попытался набросать программу
Код

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
int matr [n] [m];
int i
for (i=0; i<n; i++)
cin>>n;
max=n[0]; m max=0;
min=n[0]; m min=0;
for (i=1; i<n; i++) 
{if (n>max) {max=A; m max=i;}
{if (n<min) {min=A; m min=i;}
Z=max; max=min; min=z; 
n[m max] = n[m min];
n[m min] = max;
getch();




PM MAIL   Вверх
Chazer
Дата 13.5.2009, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Упоротый гентушник
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 18.5.2006
Где: Украина

Репутация: нет
Всего: нет



Код

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main(){
    const int n=5, m=4;
    int matr[n][m];

    srand(time(NULL));//инициализация генератора случ.чисел

    //заполнение матрицы
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            matr[i][j]=rand()%100;

    //выводим матрицу
    for(int i=0;i<n;i++){
                for(int j=0;j<m;j++)
            cout<<matr[i][j]<<'\t';
        cout<<endl;
    }

    int MaxX=0,MaxY=0,MinX=0,MinY=0;//координаты min и max

    //поиск min и max
    for(int i=0;i<n;i++)
                for(int j=0;j<m;j++){
            if(matr[i][j]<matr[MinX][MinY]){
                MinX=i;
                MinY=j;
            }
            if(matr[i][j]>matr[MaxX][MaxY]){
                                MaxX=i;
                                MaxY=j;
            }
        }

    //меняем местами max и min
    int tmp=matr[MaxX][MaxY];
    matr[MaxX][MaxY]=matr[MinX][MinY];
    matr[MinX][MinY]=tmp;

    cout<<"===================================="<<endl;

     //выводим матрицу
        for(int i=0;i<n;i++){
                for(int j=0;j<m;j++)
                        cout<<matr[i][j]<<'\t';
                cout<<endl;
        }
}

З.Ы. писал под gcc на linux, возможно нужно будет что-то поправить для совместимости с Borland 3.1, но думаю, алгоритм понятен.

Это сообщение отредактировал(а) Chazer - 13.5.2009, 21:35
PM MAIL Jabber   Вверх
npocTo
Дата 13.5.2009, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.5.2009

Репутация: нет
Всего: нет



с программой разобрался,все находит и меняет. Но рисует какие то отвлеченные цифры напр матрица 2 x 2, рисует -32455; -22 ит.д.
PM MAIL   Вверх
Chazer
Дата 13.5.2009, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Упоротый гентушник
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 18.5.2006
Где: Украина

Репутация: нет
Всего: нет



Знач, где-то выходишь за пределы матрицы. Кинь код.
PM MAIL Jabber   Вверх
npocTo
Дата 13.5.2009, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.5.2009

Репутация: нет
Всего: нет



Код

#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
//using namespace std
int main()
{int n,m,max,min,maxi,maxj,mini,minj,i,j;
int matr[4][4];
cout<<"\n Kolu4ecTBo cTpoK u CToL6coB:";
cin>>n>>m;
cout<<"\n";
//int i,j;
int **a=new int *[n];
for(i=0;i<n;i++)
a[i]=new int[m];
cout<<"Vvedite elementbI:";
for(i=0;i<n;i++)
for (j=0;j<m;j++)
cin>>a[i][j];
max=a[1][1];           //max
maxi = 1;
maxj = 1;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{ if (a[i][j]>max)
{
max=a[i][j];
maxi = i;
maxj = j;
}
}
cout<<"Max:"<<max;
min=a[1][1];              //min
mini = 1;
minj = 1;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{ if (a[i][j]<min)
{
min=a[i][j];
mini = i;
minj = j;
}
}
for(i=0;i<n;i++){
for(j=0;j<m;j++)
cout<<matr[i][j]<<'\t';
cout<<endl;
}
cout<<"Min:"<<min;
max = a[mini][minj];           //меняем местами
a[mini][minj] = a[maxi][maxj];
a[maxi][maxj] = max;
getch();
return 0;
}


Я впихнул перед заменой шоб попробовать что будет выводить

Это сообщение отредактировал(а) npocTo - 13.5.2009, 22:32
PM MAIL   Вверх
Chazer
Дата 13.5.2009, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Упоротый гентушник
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 18.5.2006
Где: Украина

Репутация: нет
Всего: нет



Line 48: зачем ты выводишь matr[i][j], если у тебя a[i][j]? А в matr не проинициализированные значения, поэтому у тя -32455; -22 и т.д.
PM MAIL Jabber   Вверх
npocTo
Дата 13.5.2009, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.5.2009

Репутация: нет
Всего: нет



 при замене matr[i][j], на a[i][j] все стало норм. показывать
Спасибо за помосчъ
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.