Сдвинуть все элементы массива на одну позицию вправо (используя указатели) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Покажите, пожалуйста, как сдвинуть все элементы массива на одну позицию вправо, используя указатели?

Решение задачи: «Сдвинуть все элементы массива на одну позицию вправо (используя указатели)»

textual
Листинг программы
#include <stdio.h>
#include <conio.h>
#define N 10
int main()
{
    
    float a[N]={1.2,2.2,3.3,4.4,5.5,6.6,7.7,8.8,99.9,10.1}, *p,t;
    p=a+N-1;
    t=*p;
    for(;p>a;p--)
    {
    *p=*(p-1);
    }
    *p=t;
    for(p=a;p<a+N;p++)
    printf("%.1f ",*p);
    printf("\n");
    getch();
    return 0;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с массивами и вводом/выводом данных.
  2. Объявление массива a типа float с 10 элементами и инициализация его значениями от 1.2 до 10.1.
  3. Объявление указателя p, который будет использоваться для обхода массива.
  4. Вычисление адреса последнего элемента массива a и сохранение его в переменной p.
  5. Сохранение значения последнего элемента массива в переменной t.
  6. Цикл, который будет переставлять элементы массива начиная с последнего и заканчивая первым.
  7. В каждой итерации цикла значение текущего элемента массива заменяется значением предыдущего элемента.
  8. После завершения цикла, значение последнего элемента массива присваивается обратно в p.
  9. Цикл, который выводит все элементы массива на экран через пробел.
  10. Ввод символа для подтверждения выполнения программы.
  11. Возврат 0, что означает успешное выполнение программы.

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы