2017-01-16 2 views
-3

У меня есть массив заданного измерения. Я хочу поменять два заданных элемента массива. Я попытался обменять их с помощью временной переменной, но результат был фиктивным и запутанным. Может ли кто-нибудь предложить другой способ сделать это? Кроме того, было бы очень полезно, если бы кто-то сказал мне, почему моя текущая программа не работает. Как я могу обменять (или поменять) два числа массива?

+2

Ваша текущая программа не работает, потому что вы написали неправильный код. С предоставленной информацией мы не можем быть более конкретными. – John3136

+2

Добро пожаловать в переполнение стека! Похоже, вам нужно научиться использовать отладчик. Пожалуйста, помогите нам с некоторыми [дополнительными методами отладки] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Если у вас все еще есть проблемы после этого, пожалуйста, не забудьте вернуться с более подробной информацией. –

+1

Каков был код, и что было «фиктивным и запутанным» об этом !? Это так бессмысленно, как вы могли это сделать. Если * ваш код * не работал, как вы ожидали, опубликуйте его, и вы получите помощь очень быстро. Мы не можем сказать, что вы сделали неправильно. Это такой странный способ задать вопрос, я подозреваю, что на самом деле ваша домашняя работа заключается в том, чтобы сделать это другими способами, и это ваш довольно неуклюжий способ заставить кого-то сделать это за вас. Это возможное, но почти совершенно бессмысленное упражнение, любимое некоторыми преподавателями, которые любят поощрять кодовые трюки, а не четкий код. – Clifford

ответ

1

Переключение с использованием временной переменной является правильным способом.

Невозможно понять, какую ошибку вы сделали, чтобы он потерпел неудачу, поскольку вы не опубликовали какой-либо код.

В целом для массива типа T мы можем поменять местами элементы в позициях i и j так:

T x[N]; 
const T tmp = x[i]; 
x[i] = x[j]; 
x[j] = tmp; 

Это работает для любого типа T, в том числе struct с.

Смежные вопросы