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

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

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

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

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #define N 10
  4. int main()
  5. {
  6.    
  7.     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;
  8.     p=a+N-1;
  9.     t=*p;
  10.     for(;p>a;p--)
  11.     {
  12.     *p=*(p-1);
  13.     }
  14.     *p=t;
  15.     for(p=a;p<a+N;p++)
  16.     printf("%.1f ",*p);
  17.     printf("\n");
  18.     getch();
  19.     return 0;
  20. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы