• Paranoid - курс по анонимности и безопасности в сети от команды codeby. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного. Подробнее ...

Матрицы

  • Автор темы Cleaner
  • Дата начала
C

Cleaner

#1
Дана матрица размером 5х4. Поменять местами первую строку и строчку, в которой находиться нулевой элемент.
Написал программу, но как-то выглядит слишком ёмко:
#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
int A[j], i, j, a, b, c, d;
for(i=0;i<=4;i++)
for(j=0;j<=3;j++)
{
cout<<"A["<<i<<"]"<<"["<<j>>"]";
cin>>A[j];
}
A[0][0]=a; A[0][1]=b; A[0][2]=c; A[0][3]=d;
if(A[j]==0)
{
A[0][0]=A[0]; A[0][1]=A[1]; A[0][2]=A[2]; A[0][3]=A[3];
A[0]=a; A[1]=b; A[2]=c; A[3]=d;
break;
}
for(i=0;i<=4;i++)
{cout<<endl;
for(j=0;j<=3;j++)
{
cout<<A[j]<<" ";
}
cout<<endl;
}
}
Извините что без подсветки. ещё не освоил
 
R

rrrFer

#2
сам программу писал?

Добавлено:
вот тут программа уже должна сломаться, ты создаешь массив в i строк и j столбцов. В i и j на этот момент находится мусор

Добавлено: вот эта строчка:
if(A[j]==0)
расположена после цикла, в этот момент i = 5, j = 4
если ты хотел создать массив из 5 строк и 4 столбцов - то A[5][4] находится за пределами массива (индексация с нуля)
 
R

rrrFer

#3
чуть поправил твой код (не проверял и даже не запускал {возможны опечатки}).
Код:
#include <iostream>
int main() {
const int n = 5, m = 4;
int a[n][m];

for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++) {
std::cout << "A[" << i << "]" << "[" << j >> "]";
std::cin >> a[i][j];
}

for (int j, t, i = 0; i < n; i++) {
for (j = 0; j < m; j++)
if (0 == a[i][j])
break;
if (j != m) {
for (j = 0; j < m; j++) {
t = a[i][j];
a[i][j] = a[0][j];
a[0][j] = t;
}
break;
}
}

for (int i = 0; i < n; i++) {
std::cout << std::endl;
for (int j = 0; j < m; j++)
std::cout << a[i][j] << " ";
std::cout << std::endl;
}
}
 
R

rrrFer

#5
Извините что без подсветки. ещё не освоил
да ниче страшного, пиши и дальше без подсветки, она на этом форуме не работает (временно, но уже давно сломалась).
ЗЫ. Чтобы увидеть код, обрамленный тегами кода обнови страницу (у меня в FF тока так работает)

Добавлено: мы заметили
Раньше на паскале работал
и это тоже заметно )
 
C

Cleaner

#6
Да я понял спасибо) Чуть-чуть тупанул. В одномерных же массивах я подобное делал. Я не мог сообразить как поменять строки местами...

Добавлено: Да я понял спасибо) Чуть-чуть тупанул. В одномерных же массивах я подобное делал в начале. Я не мог сообразить как поменять строки местами...
 
C

Cleaner

#8
кстати. Я возможно и дальше буду здесь находится и в будущем буду решать более сложные задачи. проблема в том что у меня нет электронного кошелька. можно ли просто за помощь ложить деньги на телефон и т.п. Потому что обязательно возникнут вопросы в ходе работы

Добавлено: помощь должна оплачиваться)))
 
R

rrrFer

#9
платная помощь тут в отдельном разделе, но чаще всего помогают даром если видят что ты четсно пытался решить что-то самостоятельно )
 
C

Cleaner

#10
А если ты пытался, но у тебя почти ничего не получилось и выкладывать, то что ты написал не имеет смысла?


Добавлено: А если ты пытался, но у тебя почти ничего не получилось и выкладывать, то что ты написал не имеет смысла?
 
R

rrrFer

#11
http://codeby.net/forum104.html -это платный раздел со всякими школьными задачами )

Добавлено:
А если ты пытался, но у тебя почти ничего не получилось и выкладывать, то что ты написал не имеет смысла?
не бывает чтоб совсем ничего не получилось.

Ну например из последних тем: http://codeby.net/forum/threads/49739.html

Дана символьная строка. Получить новую строку, взяв из исходной слово перед первым знаком вопроса. Если знак вопроса отсутствует, то вывести соответствующее сообщение
Я думаю он мог бы одним циклом в 2 строки найти позицию знака вопроса в строке.
Мог бы обнаружить что знака вопроса нет и вывести сообщение.
Ну и мог бы пройтись от знака вопроса по массиву к началу строки до первого пробела (чтобы выделить слово).

Задача бы решилась, но он даже не пытался (и не хочет), поэтому сразу пишет в платный раздел.
 
C

Cleaner

#12
for (int j, t, i = 0; i < n; i++)
for (int i = 0; i < n; i++)
В этих строках пишет что ошибка. "Multiple declaration for'i'. Никак не могу разобраться( Даже переводчик не помогает(

Добавлено: for (int j, t, i = 0; i < n; i++)
for (int i = 0; i < n; i++)
В этих строках пишет что ошибка. "Multiple declaration for'i'. Никак не могу разобраться( Даже переводчик не помогает(

Добавлено: Да ты прав) Я решал подобное... И ещё буду решать.... хочу за границу поехать... Нужно попытаться) Паскаль не понадобился, перешёл поэтому на С++
 
R

rrrFer

#13
В этих строках пишет что ошибка. "Multiple declaration for'i'. Никак не могу разобраться( Даже переводчик не помогает(
древний компилятор используешь.

Он тебе говорит что ты объявлять переменную i, которая уже объявлена.

Добавлено:
Код:
#include <iostream>
int main() {
const int n = 5, m = 4;
int a[n][m];
int j, t, i;

for (i = 0; i < n; i++)
for (j = 0; j < m; j++) {
std::cout << "A[" << i << "]" << "[" << j >> "]";
std::cin >> a[i][j];
}

for (j, t, i = 0; i < n; i++) {
for (j = 0; j < m; j++)
if (0 == a[i][j])
break;
if (j != m) {
for (j = 0; j < m; j++) {
t = a[i][j];
a[i][j] = a[0][j];
a[0][j] = t;
}
break;
}
}

for (i = 0; i < n; i++) {
std::cout << std::endl;
for (j = 0; j < m; j++)
std::cout << a[i][j] << " ";
std::cout << std::endl;
}
}
Добавлено: если решаешь задачи для себя - в аську постучи, скину ченить интересное )
еще можешь олимпиадные порешать типа вот этих: http://acm.dvpion.ru/ , тоже полезно и интересно.
 
C

Cleaner

#14
Спасибо) У меня уже есть этот сайт) В свободное время захожу туда и нахожу что-нить интересненькое. Не обессудь, аськой не пользуюсь...

Добавлено: Спасибо) У меня уже есть этот сайт) В свободное время захожу туда и нахожу что-нить интересненькое. Не обессудь, аськой не пользуюсь...

Добавлено: Ооо... Я смотрю ты у меня уже в друзьях) У меня тут намечается ещё одна задачка, но пока ещё попотею сам над ней, если что обращусь... и откровенно скажу - Я не люблю оставаться в долгу... Нууу ты понимаешь меня)))