Не верный вывод массива В - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д