Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2012, 21:03   #1
P91
Пользователь
 
Регистрация: 20.10.2012
Сообщений: 21
По умолчанию Преобразование матрицы

Дана матрица размера M * N и целые числа K1 и K2 (1<=K1<K2<=N). Поменять местами столбцы матрицы с номерами K1 и K2.
здесь обязательно использовать целочисленный тип данных??? Здест лучше самим вводить элементы матрицы или автоматичеки??? Что значит эта часть: K1--; K2--;
if (((K2 - K1) >= 0) && (K2 <= N))
{
for (int i=0; i<M; i++)
{
t = matr[i][K1];
matr[i][K1] = matr[i][K2];
matr[i][K2] = t;
}
}
Текст программы:
#include "stdio.h"
#include <conio.h>

int main()
{
int matr[10][10];
int M,N,K1,K2,t;
printf("Vvedite razmer matrizi M x N: \n");
scanf("%d%d",&M,&N);
for (int i=0; i<M; i++)
{
for (int j=0; j<N; j++)
{
matr[i][j] = (i+1)*(j+1);
}
}
for (int i=0; i<M; i++)
{
for (int j=0; j<N; j++)
{
if (j+1 == N) printf("%d\n",matr[i][j]);
else printf("%d ",matr[i][j]);
}
}
printf("Vvedite celie chisla K1 i K2: \n");
scanf("%d%d",&K1,&K2);
K1--; K2--;
if (((K2 - K1) >= 0) && (K2 <= N))
{
for (int i=0; i<M; i++)
{
t = matr[i][K1];
matr[i][K1] = matr[i][K2];
matr[i][K2] = t;
}
}
else printf("Oschibka!!!\n");
for (int i=0; i<M; i++)
{
for (int j=0; j<N; j++)
{
if (j+1 == N) printf("%d\n",matr[i][j]);
else printf("%d ",matr[i][j]);
}
}
getch();
return 0;
}
P91 вне форума Ответить с цитированием
Старый 20.10.2012, 21:23   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Во-первых, для оформления кода используйте кнопочку # (свое сообщение можно редактировать в течение 24 часов с помощью кнопочки Правка).
Во-вторых, размеры матрицы и номера столбцов - целые числа, сама матрица может быть вещественного типа.
В-третьих, ввод элементов, это как удобнее:
Если нужно быстро показать преподавателю работу - автоматическое заполнение
Если обработка конкретной матрицы - ручное
В-четвертых, т.к. по условию, нумерация с 1 до M и с 1 до N, а в Си нумерация с 0 до M-1 и с 0 до N-1, то делается K1--; K2--;.
if (((K2 - K1) >= 0) && (K2 <= N)) - проверка того, что K1 левее K2 и K2 меньше количества столбцов.
Я бы лучше написал: if (K1 >= 0 && K1 < K2 && K2 < N), т.к. (K2 <= N) - неверно (нужно строгое неравенство)
Затем непосредственная перестановка элементов 2 столбцов.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 20.10.2012 в 21:33.
BDA вне форума Ответить с цитированием
Старый 21.10.2012, 18:13   #3
P91
Пользователь
 
Регистрация: 20.10.2012
Сообщений: 21
По умолчанию

Спасибо!!!! Всё понятно!!!
P91 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрицы. Преобразование (C#) RIOs Помощь студентам 1 08.06.2012 22:13
преобразование матрицы. Dmitriy_ Помощь студентам 0 25.05.2011 22:24
Преобразование матрицы C++ MissFehn Помощь студентам 1 20.05.2011 07:45
Задача на преобразование матрицы AnDre_rus Общие вопросы C/C++ 12 20.10.2010 23:34
Преобразование матрицы. AndyShafl Общие вопросы Delphi 1 22.12.2009 13:59