Не верный вывод массива В - C (СИ)
Формулировка задачи:
Всем доброго дня! Есть программка на Си, нормально работает только массив В не правильно считает, может кто подскажет:
#include < stdio.h > #include < iomanip > using namespace std; void printMatrix (double arr[ ][ 4 ],double brr[][4],double s=0) {setlocale(LC_ALL, "Russian"); printf("Массив А(Первый массив)"); printf("\n"); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { printf("%3.1f", arr[ i ][ j ]); printf(" "); s=s+arr[i][j]; brr[i][j]=arr[i][j]/s; } printf("\n"); } printf("Сумма элементов массива"); printf("\n"); printf("%.1f",s); printf("\n"); printf("Массив B(Второй преобразованный массив)"); printf("\n"); for (int i=0;i<4;i++) { for (int j=0;j<4;j++) {printf("%2.2f",brr[i][j]); printf(" "); } printf("\n"); } printf("\n"); } int main ( void ) { double arr[ 4 ][ 4 ] = {{1.0,2.1,0.6,4.0,},{5.0,6.0,12.4,6.1},{-9.6,-9.1,11.0,6.4},{1.3,1.4,15.0,16.0}}; double brr[4][4]; printMatrix( arr, brr ); system( "pause > nul" ); return 0; }
Решение задачи: «Не верный вывод массива В»
textual
Листинг программы
for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { printf("%3.1f", arr[ i ][ j ]); printf(" "); s=s+arr[i][j]; //brr[i][j]=arr[i][j]/s; //тут мы еще не знаем сумму всех элементов } printf("\n"); } //добавить цикл for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) { brr[i][j]=arr[i][j]/s; //а тут мы уже знаем сумму всех элементов и формируем новую матрицу } }
Объяснение кода листинга программы
- В коде есть два вложенных цикла for. Первый цикл идет по элементам первого столбца матрицы, а второй - по элементам второго столбца.
- Внутри циклов происходит печать элементов матрицы с форматированием до 3 знаков после запятой. Затем элемент матрицы суммируется в переменную s.
- В первой части кода не выполняется деление элементов матрицы на сумму, поскольку значение переменной s еще не определено.
- Во второй части кода происходит деление каждого элемента матрицы на значение переменной s, которое уже определено. Результат сохраняется в новой матрице brr.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д