Найти определитель матрицы - C (СИ)

  1. не могу понять в чем проблемма находит определитель для матрицы размером до 4*4, а 5*5 и 6*6 выкидает с программы вот мой фрагментC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 {         for(i=0;i<(n-1);i++)     {       p=1;         while(Tem[i+p][i]!=0||p<=n)         {             kof=Tem[i+p][i]/Tem[i][i];             for(j=0;j<n;j++)             {                 G=Tem[i][j]*kof;                 Tem[i+p][j]=Tem[i+p][j]-G;               }             p++;         }       }     det=1;     for(i=0;i<n;i++)     det=Tem[i][i]*det;     printf("determ%15.2f",det);     getch(); }  


textual

Код:

while(p + i < n && Tem[i+p][i] != 0)


Похожие ответы
  1. Добрый день. Изучаю азы программирования, преподаватель попросил сделать так, чтобы пользователем вводилась квадратная матрица, при этом размер матрицы не задается в начале программы или пользователем. Происходит считывание количества элементов(csv-формат), выходит, из этого и создается размерность, но как? Если у кого-то есть пример такого кода, то было бы еще лучше, я бы разобрался К примеру: Введите матрицу 1; 2; 3; 4; 5; 6; 7; 8; 9; Вы ввели матрицу 3x3: 1; 2; 3; 4; 5; 6; 7; 8; 9;

  1. C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include #include #include int main() {     setlocale(LC_ALL, "Russian");     int a[10][10];     printf ("Введите кол-во строк и столбцов не больше 10-ти\n");     int n, m;     printf ("Кол-во строк =");     scanf ("%d", &n);     printf ("Кол-во столбцов =");     scanf ("%d", &m);     int i, j;     for (i=0; i

  1. Программа меняет в квадратной матрице 4*4 местами первый и 4 столбцы. Все работает, но выводится часто "Введите элементы массива:" C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 #include #include #include #define M 4 #define N 4   int main(void) {  setlocale(LC_ALL, "Russian");  int A[M][N]={0};  int K1, K2, i , j;  int temp; for (i = 0; i < 4; i = i + 1) {                              // ввод массива     for (j = 0; j < 4; j = j + 1) {         printf("Введите элементы массива: \n ");         scanf("%d", &A[i][j]);     } } for (i = 0; i < 4; i = i + 1) {                         // вывод массива         printf("\n");     for (j = 0; j < 4; j = j + 1) {         printf("%d\t",A[i][j]);     } printf("\n"); }       K1 = 1;     K2 = 4;       if (K1>=K2 || K1<1 || K2>N) {         puts("K1 or K2 incorrect!");         exit(1);     }     i = 0;     while (i < M) {         temp = A[i][K1-1];         A[i][K1-1] = A[i][K2-1];         A[i][K2-1] = temp;         ++i;     }       i = 0;     while (i < M) {         j = 0;         while (j < N)         {             printf("%i ", A[i][j]);             ++j;         }         putchar('\n');         ++i;     }     system("PAUSE");     return 0; }

  1. Дана целочисленная (n*m) матрица. Построить одномерный символьный массив из n элементов, каждый элемент которого равен «2», если в соответствующей строке исходной матрицы есть хоть один четный элемент, и «1» - в противном случае.

  1. Забыл как в выводе сделать индекс max и min элемента. Программа так-то работает, нужно с выводом индекса элемента.C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 #include #include #include #define K 8   int main() {   int i,j,       M[K][K]={{26, 81, 9, 63, 43, 66, 57, 52}, //Способом инициализации                       {24, 82, 92, 6, 33, 9, 7, 82},                {11, 8, 9, 6, 33, 65, 7, 82},                           {19, 8, 31, 6, 22, 66, 77, 12},                {24, 8, 9, 65, 38, 62, 7, 82},                {22, 23, 49, 6, 4, 11, 27, 20},                {24, 83, 39, 6, 38, 6, 7, 28},                {20, 8, 27, 6, 12, 36, 37, 24}};   int max = M[0][0], min = M[0][0]; // Присвоение значения первого элемента массива         for( i = 0; i < K; i++ )// Вывод матрицы     {         for( j=0; j < K; j++ )         {             printf( "|%d|\t", M[i][j]);     }     printf("\n\n");     }                       for (int i = 0; i < 4; i++) // Переключение по строкам     {         for (int j = 0; j < 3; j++)// Переключение по столбцам         {             if ( M[i][j] > max ) // Ищем максимальное значение             {                 max = M[i][j];             };             if ( M[i][j] < min ) // Ищем минимальное значение             {                  min = M[i][j];             };         }     }     printf ("Max = %d\n", max); //Вывод на экран максимального элемента printf ("Min = %d\n", min); //Вывод на экран минимального элемента getch(); return 0; }

  1. нужно отсортировать каждую строку двумерной матрицы по возростанию. если можно с объяснением.Добавлено через 54 минуты примерно имею следующий код:C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #include   int main(void) {         int a[2][4];     int i, j, z,k,y;     printf(" vvedite massiv: \n");     for (i = 0; i < 2; i++)     for (k = 0; k < 4; k++)         scanf("a[%d][%d]", &a[i][k]);     for (i = 0; i < 1; i++)     {         z = a[i];         for (j = i - 1; j >= 0; j--)             if (z < a[j]) {                 a[j + 1] = a[j];                 a[j] = z;             }     }      for (i = 1; i < 2; i++)         {         y = a[i];         for (j = i - 1; j >= 0; j--)             if (y < a[j]) {                 a[j + 1] = a[j];                 a[j] = y;             }     }     printf("\n otsortirovannyi massiv: \n", a[i]);     for (i = 0; i < 2; i++)     for (k = 0; k < 4; k++)         printf("%d%d\n", a[i][j]);

  1. по идее программа должна вычислять сумму всех положительных элементов квадратной матрицыC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include #include  main () {int n=3,m=3,a[3][3],i,j,z; z=0; for(i=n;i0) z+=a[i][j]; printf("z=%d\n",&z);} system("pause"); return(0); }

  1. Друзья! Добрый вечер. Дали в универе задание, звучит примерно следующим образом: Написать программу, в которой с помощью средств ди-намического распределения памяти создается квадрат-ная матрица целых чисел и заполняется случайными числами. Найти максимальный элемент в закрашенной области. Вывести на экран матрицу, максимальный элемент. Размер матрицы: 9 x 9 Диапазон случайных значений: 0…70 Закрашенная область выглядит как пирамидка,начинающаяся с "низа" матрицы, растущая вверх и сужающаяся на один элемент слева и справа. Растет до 5 строчки включительно. Возникла следующая проблема: иногда пропадают элементы из матрицы при её выводе в консоль(например, не отображается элемент с индексом [5,7], на его месте пустота). Серьезно . В чём ошибка? Начинаю "проходить" матрицу снизу вверх (i), а параметр (j) контролирую одновременно и слева и справа при помощи переменных f и s,чC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35  #include #include #include #include #define SIZE 9 #define Rand 71   int main(void) {     int *matr[SIZE]; int i,j,f=SIZE,s=-1; for(i=0;iSIZE/2;i--){     f--;     s++;     for(j=s;j<=f;j++){         if(max

  1. дан двумерный массив. вывести на экран его элементы, сначала элементы первой строки справа налево, затем второй строки с права налево и т.п.

  1. Создать процедуру, перемножающую две матрицы по правилам матричного умножения. Предусмотреть случай, когда размеры матриц заданы некорректно.Добавлено через 4 часа 50 минутC1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 #include #include #include #include #include                   // прототипы функций   void vorm_mass(int pp, int yy,  int mass[pp][yy]); void multi (int pp, int yy, int aa, int bb, int mass[pp][yy], int massf [aa][bb]);   int main() {     int i, j,   p,  a, b, y;       printf("\nEnter the number of lines matrix A:");     scanf("%d", &p);     printf("\nEnter the number of columns matrix A:");     scanf("%d", &y);     printf("\nEnter the number of lines matrix B:");     scanf("%d", &a);     printf("\nEnter the number of columns matrix B:");     scanf("%d", &b);           int massiv[p][y];     int massivf[a][b];       printf("\nInitial array A:\n");      vorm_mass(p, y,  massiv);       for (i=0; i