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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2021, 17:05   #1
Riskk
Новичок
Джуниор
 
Регистрация: 26.11.2021
Сообщений: 3
По умолчанию Поменять местами соседние элементы в каждой паре в массиве array длиной n

Здравствуйте , нужно поменять местами соседние элементы в каждой паре в массиве array длиной
n. Например, первая строка — исходный массив, вторая строка — массив
после вызова функции:

1 2 3 4 5 6 7
2 1 4 3 6 5 7

Код:
void swapNeighbours (double *array, int n);
Ошибки явно в объявлении массива и в printf , поправьте , пожалуйста.

Код:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
void swapNeighbours(double* array, int n)
{
    int i;
    int temp;
 
    for (i = 0; i < n; i += 2)
    {
        //7
        if (i + 1 == n)
        {
            break;
        }
 
        //8
        temp = array[i];
        array[i] = array[i + 1];
        array[i + 1] = temp;
    }
}
 
int main()
{
    setlocale(LC_ALL, "RUS");
 
    int n = 0;
    int i;
    int temp;
    double* array;   // здесь явно ошибка 
 
    printf("Сколько чисел вы хотите ввести : ");
    scanf("%d", &n);
 
 
    for (i = 0; i < n; i++)
    {
        printf("Введите элемент для позиции %d : ", i + 1);
        scanf("%d", &array);
    }
 
    printf("Введенный массив : \n");
    for (i = 0; i < n; i++)
    {
        printf("%f ", *array[i]);
    }
 
    swapNeighbours;
 
    printf("\nМассив после реверсирования выполнен : \n");
    for (i = 0; i < n; i++)
    {
        printf("%f ", *array[i]);
    }
}
Riskk вне форума Ответить с цитированием
Старый 26.11.2021, 18:22   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

В swapNeighbours почему temp типа int? Можно от if внутри цикла избавиться, чуть подправив условие цикла. Прежде, чем считывать числа в массив, нужно выделить под него память. Почему спецификатор ввода %d для вещественных? А еще потеряли индекс массива в этом scanf. Звездочка не нужна, когда печатаете массив. Когда вызываете функцию, то нужно в качестве аргументов передать массив и размер массива.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать массив из 10 целых случайных чисел. Поменять местами соседние элементы массива. RockerSiv Помощь студентам 10 12.03.2015 16:29
Поменять соседние элементы местами из файла dimongusev Общие вопросы по Java, Java SE, Kotlin 5 03.11.2014 10:44
Ввести массив а[1], а [2], .... а[n] целых чисел. Поменять в нем местами соседние элементы, стоящие на четных местах, с элементами monokol Помощь студентам 5 28.01.2012 15:07
Поменять местами элементы в массиве! Angel-dm Паскаль, Turbo Pascal, PascalABC.NET 5 14.04.2010 14:59
Поменять местами элементы в массиве (реверс) Андрей.12 Помощь студентам 7 15.11.2009 16:51