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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2018, 21:25   #1
Breezes
Пользователь
 
Регистрация: 18.10.2018
Сообщений: 14
По умолчанию Поменять местами i и k-ый элементы массива(C)

Доброго всем дня. Задание следующее:
Дан массив размерности n. Поменять местами значения i-ого и k-ого элементов.
Вывод массива я сделал, а вот с заменой элементов что-то сел, даже не знаю, с чего начать. Мой код:
Код:
#include <stdio.h>
#include <stdlib.h>
int main() {
	int i, j, n;
	double **a, max;
	system("chcp 1251");
	system("cls");
	printf("Введите размерность матрицы: ");
	scanf("%d",&n);
	a = (double**)malloc(n*sizeof(double*)); // n - количество строк
	for(i=0;i<n;i++) {
		a[i] = (double*)malloc(n*sizeof(double)); // n - количество столбцов
		for(j=0;j<n;j++) {
			printf("a[%d][%d]= ",i,j);
			scanf("%lf",&a[i][j]);
		}
	}
Breezes вне форума Ответить с цитированием
Старый 18.10.2018, 21:44   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Код:
tmp = a[i];
a[i] = a[k];
a[k] = tmp;
Бросайте, если не способны на элементарную логику.
p51x вне форума Ответить с цитированием
Старый 19.10.2018, 08:05   #3
Breezes
Пользователь
 
Регистрация: 18.10.2018
Сообщений: 14
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Код:
tmp = a[i];
a[i] = a[k];
a[k] = tmp;
Бросайте, если не способны на элементарную логику.
Спасибо. Просто не совсем понимал условие задачи, думал, что через цикл это надо сделать. Ну а по поводу бросать это вы, конечно, правы. Наверное, нужно завязывать с этим делом
Breezes вне форума Ответить с цитированием
Старый 19.10.2018, 13:38   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Вопрос сформулирован так, что речь идет об n-мерном массиве

Но в таком контексте a[i] и a[k] - бессмыслица.
----------------------------------
(double**)malloc(n*sizeof(double*)) - мне понравилось
-Ну вот, не знаешь, а говоришь!
-А слово красивое!© "Свадьба в Малиновке"
Изображения
Тип файла: jpg Array.JPG (36.6 Кб, 129 просмотров)

Последний раз редактировалось digitalis; 19.10.2018 в 13:44.
digitalis вне форума Ответить с цитированием
Старый 19.10.2018, 13:53   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Подобная путаница встречается достаточно часто. В большинстве студенческих задач размерность - число элементов массива.
Arigato вне форума Ответить с цитированием
Старый 21.10.2018, 13:54   #6
Breezes
Пользователь
 
Регистрация: 18.10.2018
Сообщений: 14
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
(double**)malloc(n*sizeof(double*)) - мне понравилось
Мы только так на си делаем. Я по другому не знаю как).
В плюсах это дело проще, написал new int[a] и всё.
Breezes вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поменять элементы массива местами jekos1 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 07.03.2016 19:40
Поменять местами элементы массива CkooTuHa Помощь студентам 1 18.12.2014 17:08
Найти минимальный и максимальный элементы массива Х и поменять их в массиве местами. Элементы массива вычисляются по формуле Xi=(( Милашечка Помощь студентам 0 26.05.2013 13:01
Поменять местами элементы одномерного массива McFrey Помощь студентам 8 08.12.2011 23:03