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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2010, 18:46   #1
Montyzero
Новичок
Джуниор
 
Регистрация: 28.04.2010
Сообщений: 4
По умолчанию Массивы

Короче такая вот проблема пытаюсь поменять местами строчки в двумерном массиве

Код:
#include <cstdlib>
#include <iostream>
using namespace std;
void display(int (*mass)[10],int a, int b);
void distmatch(int (*mass)[10],int a, int b ,int k);
int main()
{
int array[10][10];
int i,j,a,b;
cout<<"Input a\n";
cin>>a;
cout<<"Input b\n";
cin>>b;
for(i=0;i<a;i++){
                 for(j=0;j<b;j++){
                                  cout<<"Input array ["<<i<<"]["<<j<<"]=";
                                  do {
                                  cin>>array[i][j];}
                                  while
                                  (cin.good()!=true);
                                 }
                }  
cout<<"--------------------------\n";
for(i=0;i<a;i++){
                 for(j=0;j<b;j++){
                 cout<<array[i][j]<<" ";
                 }
                 cout<<"\n";}
                 
                                 
cout<<"--------------------------\n";
display(array,a,b);
cout<<"\n";
distmatch(array,a,b,1);
display(array,a,b);
                               
      cin.get();
      cin.get();
}
void display(int (*mass)[10],int a, int b){
     int i,j;
for(i=0;i<a;i++){
                 for(j=0;j<b;j++){
                                  cout<<mass[i][j]<<" ";}cout<<"\n";}
     }
void distmatch(int (*mass)[10],int a, int b ,int k)
{
int buf,i;
for(i=0;i<a;i++){
buf=*mass[k,i];
*mass[k,i]=*mass[k+1,i];
*mass[k+1,i]=buf;
}
}
но все равно даже при вызове distmatch массив остается прежним подскажите что нетак
Montyzero вне форума Ответить с цитированием
Старый 28.04.2010, 19:15   #2
Montyzero
Новичок
Джуниор
 
Регистрация: 28.04.2010
Сообщений: 4
По умолчанию

Что нет никаких предположений?
Montyzero вне форума Ответить с цитированием
Старый 28.04.2010, 19:26   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Код:
buf=*mass[k,i];
Это что еще за паскалевская ересь?
Вообще-то значение *mass[k,i] будет значением *mass[i] - таковы уж свойства оператора "запятая".
В общем, пишите
Код:
buf=*mass[k][i];
и далее аналогично.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 28.04.2010, 19:30   #4
Montyzero
Новичок
Джуниор
 
Регистрация: 28.04.2010
Сообщений: 4
По умолчанию

Гром ек макарек ))))) блин совсем вылетело из головы))) спасибо те
Montyzero вне форума Ответить с цитированием
Старый 28.04.2010, 19:34   #5
Montyzero
Новичок
Джуниор
 
Регистрация: 28.04.2010
Сообщений: 4
По умолчанию

придется долго отвыкать )
Montyzero вне форума Ответить с цитированием
Старый 28.04.2010, 19:36   #6
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Главное, с = и == не сильно путайтесь!
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 28.04.2010, 19:37   #7
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Код:
#include <cstdlib>
#include <iostream>
#include <algorithm>

using namespace std;

void display(int **mass, int a, int b);

void distmatch(int **mass,int a, int b ,int k);
int main(){
    int **array;
    int j,a,b;
    cout<<"Input a\n";
    cin>>a;
    cout<<"Input b\n";
    cin>>b;
    array = new int*[a];
    for( int i = 0; i < a; ++i )
	array[i] = new int[b];
	
    for(int i=0;i<a;i++){
	for(j=0;j<b;j++){
	    cout<<"Input array ["<<i<<"]["<<j<<"]=";
		cin>>array[i][j];}
	}
  
    cout<<"--------------------------\n";
    for(int i=0;i<a;i++){
	for(j=0;j<b;j++){
	    cout<<array[i][j]<<" ";
	}
	cout<<"\n";}
    
    
    cout<<"--------------------------\n";
    display(array,a,b);
    cout<<"\n";
    int from = a + 1;
    int to = a + 1;
    // вводим строки, которые решили изменить
    while( to >= a || from >= a || a == b )
	std::cin >> from >> to;
    distmatch( &*array, b, from, to);

    display(array,a,b);
    
}

void display(int **mass,int a, int b){
    int i,j;
    for(i=0;i<a;i++){
	for(j=0;j<b;j++){
	    cout<<mass[i][j]<<" ";}cout<<"\n";}
}

void distmatch(int **array, const int size_col, const int from, const int to){
    for( int i = 0; i < size_col; ++i )
	std::swap( array[ from ][ i ], array[ to ][ i ] );
    

}
х3, что вы там менять хотели, я сделал так
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux

Последний раз редактировалось ozo; 28.04.2010 в 19:40.
ozo вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++, Массивы, динамические массивы. -Sunshine- Помощь студентам 1 19.04.2010 02:17
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
C++ и массивы StartMis Помощь студентам 4 19.12.2008 22:45
Массивы на C++ Wia Помощь студентам 6 06.12.2008 16:09