| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [СИ] Массив |
| Автор: Steven 19.12.2007, 19:45 | ||
В двумерном N*K массиве целых чисел поменять местами строку, содержащую минимальный элемент массива, со строкой, содержащей максимальный элемент массива.
Правильный это код??? если да, то подпишите пожалуйста подробнее по операторам! |
| Автор: GoshaNahui 19.12.2007, 22:40 |
| неправильный. странные проверки на максимум и минимум if ( B[i][j] > B[max_y][max_x] && B[i][j] % 2 != 0 ) а должно быть просто if ( B[i][j] > B[max_y][max_x]) да и обмен через жопу сам писал? поправь, не сможешь - напиши и я поправлю |
| Автор: Steven 19.12.2007, 22:43 | ||
| GoshaNahui, Помоги пожалуйста, у меня всякая фигня получается!!!
Что это за ошибки: (22) : error C2374: 'i' : redefinition; multiple initialization (13) : see declaration of 'i' (35) : error C2374: 'i' : redefinition; multiple initialization (53) : warning C4508: 'main' : function should return a value; 'void' return type assumed Помоги пожалуйста изменить что не так! по идеи яхотел сделать прогу, во-первых, чтоб в ней самой вводился массив, потом строки менялись местами и выводилась полученный масссив с измененными строками! |
| Автор: GoshaNahui 19.12.2007, 23:06 | ||
| Для начала брось писать чушь. Если ты не умеешь кодить то для начала прочти хорошую книжку по Си Но это потом, а пока:
код понятен или нужна растолковка операторов? |
| Автор: Steven 19.12.2007, 23:14 |
| GoshaNahui, Если тебе не лень, то огромная посьба растолковать операторы! я просто только начинаю изучать, так что в голове у меня всякая чушь!! |
| Автор: GoshaNahui 19.12.2007, 23:33 | ||||||||||
ах вот оно что для начала: возьми себе несколько хороших книг таких чтоб с примерами! и все детально разбери, больше теории почитай, а уж потом за задачи берись. теперь в жопу прога:
тута мы нах вводим массив. При каждом выполнении внешнего цикла сначала выполняется внутренний цикл, затем в операторе cout<<endl; происходит перевод строки на новую, чтобы мы видели что вводим следующую строку
тута просматриваем массив по строкам и столбцам, и если очередной элемент больше максимума то мы записываем в переменную mx значение элемента а в max_s пишем номер текущей строки, чтоб знать в какой строке максимум потом то же самое для минимума
тут мы создаём одномерный массив - строчку. затем for(i = 0; i < MAX_SIZE; i++) temp[i] = B[max_s][i]; - копируем в этот массив содержимое строчки с максимумом for(i = 0; i < MAX_SIZE; i++) B[max_s][i] = B[min_s][i]; - заменяем строчку с максимумом на строчку с минимумом for(i = 0; i < MAX_SIZE; i++) B[min_s][i] = temp[i]; - заменяем строчку с минимумом на содержимое массива, то есть на запомненную строчку с максимумом
а тут выводим массив. cout<<B[i][j]<<" "; выводит элемент и пробел после него после вывода каждой строчки выполняется cout<<endl чтобы перевести строку вот и всё... давай мля вперёд! |
| Автор: Steven 20.12.2007, 00:30 | ||
а можно сделать так, чтобы массив не ограничивался каким-то значением ??? |
| Автор: NiDaY 20.12.2007, 07:13 | ||||
Steven у тебя для начала массив N*K, а не N*N! N и K могут быть разными! Добавлено @ 07:15
Вот попробуй! |
| Автор: Steven 20.12.2007, 23:55 |
| Всем спасибо! Тема закрыта! topic is off |