Задание:
Составить программу для сортировки двумерного массива размерностью 10 на 10 елементов методом "Пуззырька" по заданному столбцу.
Пожалуста помогите кто занет, я не очень силен в програмировании!
Заранее благодарен за понимание! :!:
Помогите пожалуйста! Задача на С++
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
-
- Сообщения: 104
- Зарегистрирован: 30 авг 2005, 02:53
- Откуда: Санкт-Петербург
- Контактная информация:
Кодить не осмелюсь могу ощибиться за неимением компилятора но:
Как я понял задачу: Создать массив и по заданному столбцу сортировать... Сортируется только заданный столбец...
Алгоритм:
Создаешь массив, выводишь... Поскольку у тя массив в виде матрици mass[10][10], то просто делаешь ввод с клавы № столбца... Приняв значение переписываешь весь столбец в одномерный (временный) массив... Его то ты и сортируешь, после чего переписываешь вместо заданного столбца и выводишь весь свой массив...
Примерно так:
За ощибки не ручаюсь, не могу проверить... хотя их не должно быть... Не забудь добавить стандартных библиотек и засунунть в головную функцию... Если что пиши... В инфе есть и мыло и ася и сайт...
Как я понял задачу: Создать массив и по заданному столбцу сортировать... Сортируется только заданный столбец...
Алгоритм:
Создаешь массив, выводишь... Поскольку у тя массив в виде матрици mass[10][10], то просто делаешь ввод с клавы № столбца... Приняв значение переписываешь весь столбец в одномерный (временный) массив... Его то ты и сортируешь, после чего переписываешь вместо заданного столбца и выводишь весь свой массив...
Примерно так:
Код: Выделить всё
int mass[10][10]; //основной масств...
int m[10]; //массив для сортировки солбца...
int i=j=a=0; //счетчики для масствов...
int c,d; //хранят информацию о обрабатываемом столбце...
int x; //переменная для перестановки элементов...
int q=1; //счетчик для сортировки... если замен не произошло то он
//будет равен 0 тогда сортировка завершенна...
for (i=0,i<10,i++) //начало ввода массива...
{
for (j=0,j<10,j++)
{
scanf ("%d ", mass[i][j]);
}
printf ("/n");
}
printf ("/n");
for (i=0,i<10,i++) //начало вывода массива...
{
for (j=0,j<10,j++)
{
printf ("%d ", mass[i][j]);
}
printf ("/n");
}
scanf ("%d", c); //ввод переменной по столбцу...
scanf ("%d", d); // по строке...
i=c;j=d;
for (i=0,i<10,i++) //переписка столбца во временный массив...
{
m[a]=mass[i][j];
a++;
}
while (q!=0) // начало сортировки пузырьком...
{
q=0;
for (a=0,a<0,a++)
{
if (m[a]>m[a+1])
{
x=m[a+1];
m[a+1]=m[a];
m[a]=x;
q++;
}
}
for (a=0,a<10,a++) //перепись обработанного столбца обратно...
{
for (i=0,i<10,i++)
{
mass[i][j]=m[a];
}
}
for (i=0,i<10,i++) //вывод обработанного массива...
{
for (j=0,j<10,j++)
{
printf ("%d ", mass[i][j]);
}
printf ("/n");
}
За ощибки не ручаюсь, не могу проверить... хотя их не должно быть... Не забудь добавить стандартных библиотек и засунунть в головную функцию... Если что пиши... В инфе есть и мыло и ася и сайт...
Жизнь ― это то, что с нами происходит, пока мы строим планы.© Джон Леннон.
Огромное спасибо тебе за помощь и отзывчивость, успехов в коддинге!!!
Я вчера ось переставлял, и щас вот ставлю, через минут 5 проверю и сразу напишу работоспособность.... У меня вопрос один есть: а printf это то же самое, что и cout?
В коде есть cin и я так не понял, каким оператором он в твоем коде называется?
В коде есть cin и я так не понял, каким оператором он в твоем коде называется?
Код: Выделить всё
#include <iostream.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
int main() {
int mass[10][10]; //îñíîâíîé ìàññòâ...
int m[10]; //ìàññèâ äëÿ ñîðòèðîâêè ñîëáöà...
int i=j=a=0; //ñ÷åò÷èêè äëÿ ìàññòâîâ...
int c,d; //õðàíÿò èíôîðìàöèþ î îáðàáàòûâàåìîì ñòîëáöå...
int x; //ïåðåìåííàÿ äëÿ ïåðåñòàíîâêè ýëåìåíòîâ...
int q=1; //ñ÷åò÷èê äëÿ ñîðòèðîâêè... åñëè çàìåí íå ïðîèçîøëî òî îí
//áóäåò ðàâåí 0 òîãäà ñîðòèðîâêà çàâåðøåííà...
for (i=0;i<10;i++) //íà÷àëî ââîäà ìàññèâà...
{
for (j=0;j<10;j++)
{
scanf ("%d ", mass[i][j]);
}
printf ("/n");
}
printf ("/n");
for (i=0;i<10;i++) //íà÷àëî âûâîäà ìàññèâà...
{
for (j=0;j<10;j++)
{
printf ("%d ", mass[i][j]);
}
printf ("/n");
}
scanf ("%d", c); //ââîä ïåðåìåííîé ïî ñòîëáöó...
scanf ("%d", d); // ïî ñòðîêå...
i=c;
j=d;
for (i=0;i<10;i++) //ïåðåïèñêà ñòîëáöà âî âðåìåííûé ìàññèâ...
{
m[a]=mass[i][j];
a++;
}
while (q!=0) // íà÷àëî ñîðòèðîâêè ïóçûðüêîì...
{
q=0;
for (a=0;a<0;a++)
{
if (m[a]>m[a+1])
{
x=m[a+1];
m[a+1]=m[a];
m[a]=x;
q++;
}
}
for (a=0;a<10;a++) //ïåðåïèñü îáðàáîòàííîãî ñòîëáöà îáðàòíî...
{
for (i=0;i<10;i++)
{
mass[i][j]=m[a];
}
}
for (i=0;i<10;i++) //âûâîä îáðàáîòàííîãî ìàññèâà...
{
for (j=0;j<10;j++)
{
printf ("%d ", mass[i][j]);
}
printf ("/n");
}
}
Код: Выделить всё
--------------------Configuration: rgr1 - Win32 Debug--------------------
Compiling...
rgr1.cpp
E:\Program Files\Microsoft Visual Studio\MyProjects\rgr1\rgr1.cpp(9) : error C2065: 'j' : undeclared identifier
E:\Program Files\Microsoft Visual Studio\MyProjects\rgr1\rgr1.cpp(9) : error C2065: 'a' : undeclared identifier
E:\Program Files\Microsoft Visual Studio\MyProjects\rgr1\rgr1.cpp(72) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
Код: Выделить всё
#include <iostream.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
int main()
{
int mass[10][10];
int m[10];
int i=j=a=0;
int c,d;
int x;
int q=1;
for (i=0;i<10;i++)
{
for (j=0;j<10;j++)
{
scanf ("%d ", mass[i][j]);
}
printf ("/n");
}
printf ("/n");
for (i=0;i<10;i++)
{
for (j=0;j<10;j++)
{
printf ("%d ", mass[i][j]);
}
printf ("/n");
}
scanf ("%d", c);
scanf ("%d", d);
i=c;
j=d;
for (i=0;i<10;i++)
{
m[a]=mass[i][j];
a++;
}
while (q!=0)
{
q=0;
for (a=0;a<0;a++)
{
if (m[a]>m[a+1])
{
x=m[a+1];
m[a+1]=m[a];
m[a]=x;
q++;
}
}
for (a=0;a<10;a++)
{
for (i=0;i<10;i++)
{
mass[i][j]=m[a];
}
}
for (i=0;i<10;i++)
{
for (j=0;j<10;j++)
{
printf ("%d ", mass[i][j]);
}
printf ("/n");
}
}
+ в условиях вида у тебя стояли запятые, компилятор ругался и я поставил точки с запятыми, после этого он утих...
Код: Выделить всё
for (i=0;i<10;i++)
-
- Сообщения: 104
- Зарегистрирован: 30 авг 2005, 02:53
- Откуда: Санкт-Петербург
- Контактная информация:
Молодца что заменил... косяк за мной... printf это из С а в С++ ет cout a scanf - cin... просто я начинал с С так что за мной водится такое... Хотя ты должен бы знать такое... Других ошибок небыло???
Жизнь ― это то, что с нами происходит, пока мы строим планы.© Джон Леннон.
А как те ошибки исправить, которые выше? Знаешь?