1. Условие
В данной действительной квадратной матрице порядка n найти сумму элементов строки, на которой расположен элемент с наименьшим значением.
2. Решение
Оператор задает порядок матрицы n. Динамически выделяется память под квадратную матрицу размерностью n*n. Производится инициализация матрицы. В цикле ищется номер строки матрицы, на которой расположен наибольший элемент. Элементы найденной строки суммируются. Результат выводится на экран.
3. Алгоритм решения
4. Текст программы
1 : #include <stdio.h> 2 : #include <stdlib.h> 3 : #include <conio.h> 4 : void main() 5 : { 6 : int i, j, n, z; 7 : float *x, s = 0, min; 8 : clrscr( ); 9 : printf( "\n Введите натуральное число n:" ); 10: scanf( "%d", &n ); 11: x=(float*)malloc( (n*n)*sizeof(float) ); 12: for (i=0; i<n; i++) 13: for (j=0; j<n; j++) 14: { 15: printf( "\n Введите x[%d][%d] ",i+1, j+1 ); 16: scanf( "%f",&x[n*i+j] ); 17: } 18: printf("\n Исходная последовательность:\n "); 19: for (i=0; i<n; i++) 20: { 21: for(j=0; j<n; j++) 22: { 23: printf(" %5.2f ", x[n*i+j]); 24: } 25: printf("\n"); 26: } 27: min=x[0]; 28: for (i=0; i<n; i++) 29: for (j=0; j<n; j++) 30: if( min>x[i*n+j] ) 31: { 32: min=x[i*n+j]; 33: z=i; 34: } 35: for( j=0; j<n; j++ ) 36: s=s+x[z*n+j]; 37: printf ( "\n Минимальное число %.2f (строка %d) \n\t сумма %.2f", min, z+1, s); 38: free( x ); 39: printf( "\n \n \n Для завершения программы введите любой символ" ); 40: getch( ); 41: }
5. Работа программы
Введите
натуральное число n: 3
x[1][1] = 2
x[1][2] = 4
x[1][3] = 5
x[2][1] = 1
x[2][2] = 2
x[2][3] = 4
x[3][1] =-1
x[3][2] =-2
x[3][3] = 3
Исходная последовательность:
2.00 4.00 5.00
1.00 2.00 4.00
-1.00 -2.00 3.00
Минимальное число -2 (строка 3)
Сумма =0.00
Для завершения программы введите любой символ.
6. Проверка
Программа работает корректно.