КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Реализация алгоритмов задач второго типаЗадача 1. В матрице X ={хij}3х6 вещественных чисел первый элемент каждой строки поменять местами с минимальным элементом этой строки. Вывести матрицу X после обмена. ( Для заполнения матрицы воспользуемся датчиком случайных чисел).
Текст программы: #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; }
|