Реализация алгоритмов задач второго типа
Задача 1.В матрице X ={хij}3х6 вещественных чисел первый элемент каждой строки поменять местами с минимальным элементом этой строки. Вывести матрицу X после обмена. ( Для заполнения матрицы воспользуемся датчиком случайных чисел).
Да |
X[i][jmin]=X[i][0] X[i][0]=min |
Х[i][j]<min |
i = 0, 3 |
J = 0, 6 |
НАЧАЛО |
Вывод Матрицы Х |
Инициализация матрицы Х |
min=106 |
НАЧАЛО |
Вывод Матрицы Х |
Инициализация матрицы Х |
i = 0, 3 |
min=106 |
НАЧАЛО |
Вывод Матрицы Х |
Инициализация матрицы Х |
Да |
Х[i][j]<min |
J = 0, 6 |
i = 0, 3 |
min=106 |
НАЧАЛО |
Вывод Матрицы Х |
Инициализация матрицы Х |
Да |
Х[i][j]<min |
J = 0, 6 |
i = 0, 3 |
min=106 |
НАЧАЛО |
Вывод Матрицы Х |
Инициализация матрицы Х |
min=X[i][j] jmin=j |
Да |
Х[i][j]<min |
J = 0, 6 |
i = 0, 3 |
min=106 |
НАЧАЛО |
Вывод Матрицы Х |
Инициализация матрицы Х |
min=X[i][j] jmin=j |
Да |
Х[i][j]<min |
J = 0, 6 |
i = 0, 3 |
min=106 |
НАЧАЛО |
Вывод Матрицы Х |
Инициализация матрицы Х |
min=X[i][j] jmin=j |
Да |
Х[i][j]<min |
J = 0, 6 |
i = 0, 3 |
min=106 |
НАЧАЛО |
Вывод Матрицы Х |
Инициализация матрицы Х |
X[i][jmin]=X[i][0] X[i][0]=min |
min=X[i][j] jmin=j |
Да |
Х[i][j]<min |
J = 0, 6 |
i = 0, 3 |
min=106 |
НАЧАЛО |
Вывод Матрицы Х |
Инициализация матрицы Х |
Вывод матрицы Х |
Конец |
X[i][jmin]=X[i][0] X[i][0]=min |
min=X[i][j] jmin=j |
Да |
Х[i][j]<min |
J = 0, 6 |
i = 0, 3 |
min=106 |
НАЧАЛО |
Вывод Матрицы Х |
Инициализация матрицы Х |
Текст программы:
#include "stdafx.h"
#include<math.h>
int 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");
}
return 0;
}
Задача 2.Дана матрица вещественных чисел С = {сij}8х4. Вычислить среднее арифметическое каждого столбца. Результат оформить в виде одномерного массива S = {sj};j = .
Данная задача
#include "stdafx.h"
int 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");
return 0;
}
В приведенной выше программе для вычисления каждого элемента S[j] организован двойной цикл, в котором индекс j является внешним параметром цикла, а индекс i - внутренним.
Приведем вариант программы без использования одномерного массива S.
#include "stdafx.h"
#include <iostream>
using namespace std;
int 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;
cout<<"Среднее арифметическое "<<j<<" столбца="<<S<<endln;
}
return 0;
}
Дата добавления: 2015-02-10; просмотров: 672;