Матрицы

Тема в разделе "C/C++/C#", создана пользователем Cleaner, 26 дек 2012.

  1. Cleaner

    Cleaner Гость

    Дана матрица размером 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;
    }
    }
    Извините что без подсветки. ещё не освоил
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    сам программу писал?

    Добавлено:

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

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

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    чуть поправил твой код (не проверял и даже не запускал {возможны опечатки}).
    Код (Text):
    #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;
    }
    }
     
  4. Cleaner

    Cleaner Гость

    Только учусь. Раньше на паскале работал
     
  5. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    да ниче страшного, пиши и дальше без подсветки, она на этом форуме не работает (временно, но уже давно сломалась).
    ЗЫ. Чтобы увидеть код, обрамленный тегами кода обнови страницу (у меня в FF тока так работает)

    Добавлено:
    мы заметили
    и это тоже заметно )
     
  6. Cleaner

    Cleaner Гость

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

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

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    заходи еще )
     
  8. Cleaner

    Cleaner Гость

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

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

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    платная помощь тут в отдельном разделе, но чаще всего помогают даром если видят что ты четсно пытался решить что-то самостоятельно )
     
  10. Cleaner

    Cleaner Гость

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


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

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    http://codeby.net/forum104.html -это платный раздел со всякими школьными задачами )

    Добавлено:
    не бывает чтоб совсем ничего не получилось.

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

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

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

    Cleaner Гость

    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'. Никак не могу разобраться( Даже переводчик не помогает(

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

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    древний компилятор используешь.

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

    Добавлено:
    Код (Text):
    #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/ , тоже полезно и интересно.
     
  14. Cleaner

    Cleaner Гость

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

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

    Добавлено: Ооо... Я смотрю ты у меня уже в друзьях) У меня тут намечается ещё одна задачка, но пока ещё попотею сам над ней, если что обращусь... и откровенно скажу - Я не люблю оставаться в долгу... Нууу ты понимаешь меня)))
     
Загрузка...
Похожие Темы - Матрицы
  1. Dantes95
    Ответов:
    0
    Просмотров:
    1.015
  2. kobrin13
    Ответов:
    0
    Просмотров:
    1.033
  3. FCDK
    Ответов:
    0
    Просмотров:
    1.264
  4. PahaStar
    Ответов:
    0
    Просмотров:
    1.077
  5. Evgesha777
    Ответов:
    1
    Просмотров:
    1.399

Поделиться этой страницей