Задача 1. В матрице X ={хij}3х6 вещественных чисел первый элемент каждой строки поменять местами с минимальным элементом этой строки. Вывести матрицу X после обмена. (Для заполнения матрицы воспользуемся датчиком случайных чисел).
X[i][jmin]=X[i][0]
X[i][0]=min
|
X[i][jmin]=X[i][0]
X[i][0]=min
|
X[i][jmin]=X[i][0]
X[i][0]=min
|
Текст программы:
#include " stdafx.h"
#include< math.h>
void main()
{
float X[3][6]; // описание матрицы X
int i, j, jmin;
float min;
for(i=0; i< 3; i++) /* заполнение матрицы случайными числами*/
for (j= 0; j< 6; j++)
X[i][j]=rand()/100;
printf(" матрица X\n");
for(i=0; i< 3; i++) //вывод матрицы до перестановки
{
for (j=0; j< 6; j++) printf(" %8.2f", X[i][j]);
printf(" \n");
}
for(i=0; i< 3; i++) //цикл по строкам
{
min=+1E6; // установка начального значения min
for (j=0; j< 6; j++) //цикл по столбцам
if (X[i][j]< min) // поиск минимума
{
min=X[i][j];
jmin=j;
}
X[i][jmin]=X[i][0]; // перестановка первого элемента
X[i][0]=min; // матрицы с наименьшим
}
for(i=0; i< 3; i++) //вывод матрицы после перестановки
{
for (j=0; j< 6; j++) printf(" %8.2f", X[i][j]);
printf(" \n");
}
}
Задача 2. Дана матрица вещественных чисел С = {сij}8х4. Вычислить среднее арифметическое каждого столбца. Результат оформить в виде одномерного массива S = {sj}; j = .
#include " stdafx.h"
void main()
{ float C[8][4];
float S[4];
int i, j;
printf(" Введите матрицу С: \n");
for(i=0; i< 8; i++)
for (j= 0; j< 4; j++)
scanf(" %f", & C[i][j]);
for (j= 0; j< 4; j++)
{
S[j]=0; //начальная установка элемента массива для сумм
for(i=0; i< 8; i++)
S[j]= S[j] + C[i][j]; //накопление суммы j-го столбца
S[j]=S[j]/8; //вычисление среднего значения суммы j столбца
}
for (j= 0; j< 4; j++) printf(" %8.2f", S[j]); // вывод всех сумм
printf(" \n");
}
В приведенной выше программе для вычисления каждого элемента S[j] организован двойной цикл, в котором индекс j является внешним параметром цикла, а индекс i - внутренним.
Приведем вариант программы без использования одномерного массива S.
#include " stdafx.h"
void main()
{ float C[8][4];
float S;
int i, j;
printf(" Введите матрицу С: \n");
for(i=0; i< 8; i++)
for (j= 0; j< 4; j++)
scanf(" %f", & C[i][j]);
for (j= 0; j< 4; j++)
{
S=0;
for(i=0; i< 8; i++)
S= S + C[i][j];
S = S/8;
printf(" Среднее арифметическое %d-го столбца=%8.2f\n", j, S);
}
}