Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: программа на с++
Показать сообщение отдельно

Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата:
printf("\nElement [%d,%d]: ", i+1, j+1);
Это ошибка - нет смысла добавлять единицы к счетчикам.

Код: Выделить весь код
//Поэлементный ввод матрицы:
 for (i=0; i<nn; i++) // цикл по строке (столбцу)
   for (j=0; j<nn; j++) // цикл по столбцу (строке)
   { printf("\nElement [%d,%d]: ", i+1, j+1); //Ошибка. 
     float k; // объявление перемнной типа float
     scanf("%f", &k); // считать с консоли число с плавающей точкой k
     A[i][j] = k; //элемент матрицы
   }
Код: Выделить весь код
//Создание единичной матрицы:
 for (i=0; i<nn; i++)
   for (j=0; j<nn; j++) 
if (i!=j)  // если элемент не на диагонали
L[i][j]=0;  то присвоить ему значение 0
else  // если элемент на главной диагонали
L[i][j]=1; //то присвоить ему значение 1
Код: Выделить весь код
//Переобразования над матрицей А:
    for (n=0; n<nn; n++)
левый код - не нужен

Код: Выделить весь код
j = 0;
 int m=0;
 int n;
 do // цикл по строке(столбцу)
  { // Выбор ведущего элемента ниже элемента [j,j-1]:
    m = j; // m=номер строки (столбца)
    for (n=j+1; n<nn; n++) // цикл по столбцу (строке)
      if (fabs(A[m][j])<fabs(A[n][j])) m = n; // сравнение элементов и выбор максимального. m - номер максимального элемента в столбце(строке)
    double prm=0;

    //Переобразования над матрицей А:
    for (n=0; n<nn; n++) //ненужный левый код
   

    prm = A[j][j];// элемент главной диагонали
    for (n=0; n<nn; n++) // цикл по столбцу(строке)
    { A[j][n] = double (A[j][n]/prm); // деление элементов столбца(строки) на элемент стобца(строки), находящийся на главной диагонали
      L[j][n] = double (L[j][n]/prm); 
    }
    for (i=0; i<=nn; i++) // цикл по строке
      if (i!=j) //если элемент не на главной диагонали
      { prm = A[i][j]; // присвоение элемента  строки(столбца)
	for (n=j; n<=3; n++)  //откуда взялась константа 3? возможно неправильный код. Какой метод используется?
                 A[i][n] = A[i][n]- double (prm*A[j][n]);
	for (n=0; n<=3; n++) 
                 L[i][n] = L[i][n]- double(prm*L[j][n]);
      }
    j++; //увеличили номер строки (столбца)
    }
  while (j<nn); /

-------
Ehhh.. what's up, doc?..

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:28, 26-05-2011 | #6

Название темы: программа на с++