Сравнить каждый элемент массива из 20 целых чисел с его правым соседом и поменяь местами при несовпадении. Ошибка. - C (СИ)
Формулировка задачи:
Сравнить каждый элемент массива из 20 целых чисел с его правым соседом и меняющий их местами, если они не совпадают
http://pastebin.com/DveWNj84
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main(void)
{
int i;
int a[6];
for(i = 0 ; i < 6; i++) {
printf("massiv[%d] = ", i);
scanf_s("%d", &a[i]);}
for (i = 0; i < 6 - 1; i++)
{
if (a[i] != a[i + 1])
{
int temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
printf("%d", a[i]);
}
}
system("pause");
return 0;
}Решение задачи: «Сравнить каждый элемент массива из 20 целых чисел с его правым соседом и поменяь местами при несовпадении. Ошибка.»
textual
Листинг программы
#include <stdio.h>
int main(void)
{
int i,temp;
int a[6];
for(i = 0 ; i < 6; i++) {
printf("massiv[%d] = ", i);
scanf("%d", &a[i]);}
for (i = 0; i < 5; i++)
{
if (a[i] != a[i + 1] && i%2==0)
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
printf("%d", a[i]);
printf(" ");
}
else
{
printf("%d", a[i]);
printf(" ");
}
}
printf("%d", a[5]);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
i- счётчик для циклов;temp- временная переменная для обмена значениями;a- массив из 6 элементов.
- Заполняются элементы массива
aс помощью циклаforи функцииscanf. - Внешний цикл
forперебирает первые 5 элементов массиваa. - Внутренний цикл
ifпроверяет неравенство соседних элементов массива и четность индекса. - Если условия выполняются, то происходит обмен значениями с помощью временной переменной
temp. - Выводится значение элемента массива с помощью функции
printf. - Внутренний цикл
elseвыводит значение элемента массива без изменений. - После завершения внутреннего цикла выводится последний элемент массива.
- В конце программы возвращается 0, чтобы операционная система знала, что программа завершилась успешно.
Например, для массива
[1, 2, 3, 4, 5, 6]и ввода[1, 2, 3, 4, 5, 6]программа выведет[2, 3, 4, 5, 6, 1].