Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2011, 21:01   #1
Voldemort93
Пользователь
 
Аватар для Voldemort93
 
Регистрация: 27.08.2009
Сообщений: 40
По умолчанию C++ работа с матрицой. Нахождение скаляра

Доброго времени суток!
возникла проблема с матрицей.
задание: есть квадратная матрица. найти скалярное произведение строки с наибольшим элементом на столбец с наименьшим элементом. Возникает ошибка при высчитывании скаляра (отрицательное число). Помогите, пожалуйста, найти ошибку и исправить ее.
код:
Код:
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------

#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused


#include <iostream.h>
#include <stdiO.h>
#include <vcl.h>
#include <conio.h>
#include <math.h>
 main (int argc, char* argv[] )
 {
 // Ввод размерности матрицы //
 float M,N;
 cout<<" Vvodim razmer matrizu N*M";
 cout<<"\nN=";
 cin>>N;
 cout<<"M=";
 cin>>M;
 getch();
 // Ввод элементов матрици   //
 int i,j;
 int  A[5][5];
    for (i=0; i<M; i++)
        for (j=0; j<N; j++)
        {
        cout<<"A["<<i+1<<","<<j+1<<"]=";
        cin>>A[i][j];
        }
 // Вывод матрици //
  cout<<"Matrica A\n";
    for (i=0; i<N; i++)
    {
        for (j=0; j<M; j++)
        cout<<A[i][j]<< " ";
        cout<< "\n";
    }
       // Поиск максимального элемента в строке //
 float max=0;
 int stroka=0;
   for (i=0; i<M; i++)
        for (j=0; j<N; j++)
        {
            if ( A[i][j] > max )
            {
                max=A[i][j];
                stroka=i+1;
            }
        }
        cout<<"max="<<max;
        cout<<"\nstroka="<<stroka;
    // Поиск минимального значения в стобце //
  float min=3.4E+38;
  int stolbez=0;
    for (j=0; j<N; j++)
        for (i=0; i<M; i++)
        {
            if ( A[i][j] < min )
            {
                min=A[i][j];
                stolbez=j+1;
            }
        }
        cout<<"\nmin="<<min;
        cout<<"\nstolbez="<<stolbez;
        // Вычисление скаляра //
 float skalar=0;
     for (i=0; i<M; i++)
         for (j=0; j<N; j++)
        {
            skalar=skalar+(A[stroka][j-1] * A[i-1][stolbez]);
        }
         cout<<"\nskalar="<<skalar;
       getch ();

}
Спасибо за помощь.
Читаю и перевожу со словарем с Фортрана, Алгола, Кобола и др.

Последний раз редактировалось Voldemort93; 04.10.2011 в 23:45.
Voldemort93 вне форума Ответить с цитированием
Старый 05.10.2011, 10:37   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

1
Код:
// Ввод размерности матрицы //
 float M,N;
Размерность матрицы не может быть дробной, тюе д.б.
int M,N;

2 // Поиск максимального элемента в строке //
Код:
 float max=0;
логичнее
float max=A[0][0];, но обратите внимание матрица А у Вас объявлена как int. тоже и с
Код:
 float min=3.4E+38;
float min=A[0][0]
3
Код:
 skalar=skalar+(A[stroka][j-1] * A[i-1][stolbez]);
думаю, что перед вычислениями stroka=stroka-1; stolbez=stolbez-1;
и тогда
skalar=skalar+(A[stroka][j] * A[i][stolbez])
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 06.10.2011, 13:38   #3
Voldemort93
Пользователь
 
Аватар для Voldemort93
 
Регистрация: 27.08.2009
Сообщений: 40
По умолчанию

Спасибо большое за помощь, все получилось!)
Читаю и перевожу со словарем с Фортрана, Алгола, Кобола и др.
Voldemort93 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строкой...нахождение симметричных слов miNN@ Общие вопросы C/C++ 2 11.12.2010 02:27
работа с матрицой на Си Sabolch Помощь студентам 10 24.11.2010 21:48
Работа с матрицой (Си) Roll1n Общие вопросы C/C++ 1 20.04.2010 21:28
работа с массивами в С++ (нахождение мин и макс числа) Lorden Помощь студентам 10 29.01.2009 21:42
turbo C работа с матрицой ddos Помощь студентам 9 01.06.2008 22:37