Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Перестановка строк матрицы





1-й способ.

С использованием вспомогательной переменной P (того же типа, что и элементы массива) перестановка осуществляется во всех столбцах двух строк.

for (k=0; k<n; k++)

{ P=A[i][k]; A[i][k]=A[j][k]; A[j][k]=P; }

2-й способ

С использованием вспомогательного массива, в который целиком пересылается одна из строк для временного хранения.

for (k=0; k<n; k++)

c[k]=a[i][k];

for (k=0; k<n; k++)

a[i][k]= a[j][k];

for (k=0; k<n; k++)

a[j][k]=c[k];

Примеры решения

1. Вычисление и вывод на экран таблицы умножения в форме матрицы Пифагора.

#include <stdio.h>

#include<conio.h>

void main()

{ const int n=10;

int a[n][n], i, j;

clrscr();

for (i=1; i<n; i++)

{ for (j=1; j<n; j++)

{ a[i][j]=i*j;

printf ("%5d", a[i][j]);

}

printf ("\n");

}

getch();

}

По данной программе в двумерном массиве не будут заполнены нулевая строка и нулевой столбец.

2. Заполнение матрицы случайными числами в диапазоне от 0 до 99 и поиск в ней максимального значения.

#include <stdio.h>

#include<conio.h>

#include <stdlib.h>

#define n 5

void main()

{

int a[n][n], i, j, imax, jmax;

clrscr();

randomize();

for (i=0; i<n; i++)

{ for (j=0; j<n; j++)

{ a[i][j]=rand() % 100;

printf (“%d\t”, a[i][j]);

}

printf (“\n”);

}

imax=jmax=0; // начало поиска

for (i=0; i<n; i++)

for (j=0; j<n; j++)

if (a[i][j]>a[imax][jmax])

{ imax=i; jmax=j; }

printf (“max=a[%d][%d]=%d\n”, imax, jmax, a[imax][jmax]);

getch();

}

3. Дан двумерный массив различных вещественных чисел, содержащий 5 строк и 4 столбца. Строку, содержащую максимальный элемент массива, поменять местами со строкой, содержащей минимальный элемент:

#include <stdio.h>

void main()

{ float m1[5][4], max, min, m2[4];

int maxi, mini, i, j;

puts("Введите исходный массив: \n");

for(i=0;i<5;i++)

for(j=0;j<4;j++)

scanf("%f", &m1[i][j]);

max=m1[0][0];

min=m1[0][0];

for(i=0;i<5;i++)

for(j=0;j<4;j++)

if(max<=m1[i][j])

{max=m1[i][j];

maxi=i;}

for(i=0;i<5;i++)

for(j=0;j<4;j++)

if(min>=m1[i][j])

{min=m1[i][j];

mini=i;}

for(j=0;j<4;j++)

m2[j]=m1[maxi][j];

for(j=0;j<4;j++)

m1[maxi][j]=m1[mini][j];

for(j=0;j<4;j++)

m1[mini][j]=m2[j];

puts("Массив после перестановки строк:\n");

for(i=0;i<5;i++)

{for(j=0;j<4;j++)

printf("%f ", m1[i][j]);

printf("\n");}

}

Date: 2015-10-19; view: 371; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию