1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Массивы

Тема в разделе "Вопросы новичков и не только", создана пользователем svetapelsin, 16 янв 2012.

  1. svetapelsin

    svetapelsin Гость

    Репутация:
    0
    Вот такое задание:
    Дана матрица B (4;4).
    1)Найти сумму отрицательных элементов на побочной диагонали матрицы B.
    2)Найти минимальный элемент 3-го столбца матрицы B.
    3)Поменять местами найденный минимальный элемент и значение 3-го элемента в 4-ой строке.
    Я написала код, но матрица выводится хрен пойми как. Подскажите пожалуйста где здесь я налажала!

    Код:
    #include<iostream>
    #include<math.h>
    #include<iomanip>
    #include<conio.h>
    using namespace std;
    int main()
    {double B[4][4];
    double min, sum;
    int i, j;
    for (i=0; i<4; i++)
    {for (j=0; j<4; j++)
    {cout<<"enter element ["<<i<<"]["<<j<<"]"<<endl;
    cin>>B[i][j];}}
    cout<<"array B"<<endl;
    for (i=0; i<4; i++)
    {for (j=0; j<4; j++)
    {cout<<setw(10)<<B[i][j]<<'\t';}}
    cout<<endl;
    
    int id, jd;
    sum=0;
    for (i=0; i<4; i++)
    {id=0; jd=3;
    if(B[i][3-i]<0)
    {sum=sum+B[i][3-i];}}
    cout<<"summa="<<sum<<endl;
    
    int imin, jmin;
    imin=0; jmin=2;
    for (i=0; i<4; i++)
    {min=B[0][2];
    if(B[i][2]<min)
    {min=B[i][2];
    imin=i; jmin=2;}}
    cout<<"min="<<min<<"imin="<<imin<<"jmin="<<jmin<<endl;
    
    B[3][2]=min;
    B[imin][jmin]=B[3][2];
    cout<<"new array B"<<endl;
    for (i=0; i<4; i++)
    {for (j=0; j<4; j++)
    cout<<setw(10)<<B[i][j]<<'\t';}
    getch();
    return 0;}
     
  2. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    какой из трех пунктов работает не так?
    или если я что-то понял не так, то при чем тут 3 задания если тебе надо всего лишь правильно вывести матрицу?
     
  3. Sandra

    Sandra Гость

    Репутация:
    0
    Тебе обязательно надо двумерный массив?? проще одномерным сделать
     
  4. Whatka

    Whatka Well-Known Member

    Репутация:
    0
    Регистрация:
    9 окт 2011
    Сообщения:
    428
    Симпатии:
    4
    Sandra конечно же проще о чём речь

    записать элементы матрицы(а сказано что дана именно матрица)в последовательность(массив)

    ну и найти там диагональ
    1 4 -7 9 4 -6 7 1 -5 6 -7 9 3 0 3 -8 интересно где здесь диагональ??
     
  5. Whatka

    Whatka Well-Known Member

    Репутация:
    0
    Регистрация:
    9 окт 2011
    Сообщения:
    428
    Симпатии:
    4
    просто когда выводишь матрицу перед вторым циклом поставь переход нановую строку

    Код:
    for(...)
    {
    cout<<endl;
    for(...)
    {...}
    }
     
  6. rrrFer

    rrrFer Гость

    Репутация:
    0
    Иногда таки используют одномерный вместо двумерного
    размерность одномерного N*M, обход и вывод как то так:
    Код:
    n = N * M;
    for( i = 0; i < n; i ++ ) {
    if( 0 == i % M ) {
    std ::cout << std ::endl;
    continue;
    }
    std ::cout << a[ i ] << " ";
    }
    не проверял, могут быть опечатки.

    Хотя невкурсе зачем так делать...
     
Загрузка...

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