Массивы

Тема в разделе "C/C++/C#", создана пользователем svetapelsin, 16 янв 2012.

  1. svetapelsin

    svetapelsin Гость

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

    Код (C++):
    #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
    C\C++ Team

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

    Sandra Гость

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

    Whatka Well-Known Member

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

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

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

    Whatka Well-Known Member

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

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

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

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

    Хотя невкурсе зачем так делать...
     
Загрузка...
Похожие Темы - Массивы
  1. Искушенный
    Ответов:
    0
    Просмотров:
    428
  2. Искушенный
    Ответов:
    1
    Просмотров:
    414
  3. Искушенный
    Ответов:
    1
    Просмотров:
    382
  4. Rpp
    Ответов:
    1
    Просмотров:
    809
  5. romanovbadboy2
    Ответов:
    0
    Просмотров:
    668

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