Сдвиг массива на одну позицию вправо - C (СИ)
Формулировка задачи:
Задано вектор T(n), 12<=n. Сформувати вектор Y с элементов T[i], что передають самому большому элементу вектора T. Сделать сдвиг полученого масива на одну позицию вправо.
p.s вектор Т должен быть сдвинут на 1 позицию вправо а он у меня сдвинут в лево
#include <iostream> #include <stdlib.h> #include <ctime> #include <conio.h> #include <stdio.h> #include <math.h> #include <conio.h> int main() { int T[12], i, n, maxx, minx, M, temp; int* a; printf("Vvedite n <= 12, n= "), scanf("%i", &n); while (n > 12) { system("cls"); printf("Vvedite n <= 12, n= "), scanf("%i", &n); } srand(time(NULL)); printf("Vektor Y\n|"); minx = 12; maxx = 0; for (i = 0; i < n; i++) { T[i] = rand() %500; printf(" %i |", T[i]); if (T[i] > maxx) { maxx = T[i]; } if (T[i] < minx) { minx = T[i]; } } M = (minx + maxx) / 2; M++; printf("\n\n"); srand(time(NULL)); printf("Vektor T\n|"); for (i = 0; i < n; i++) temp = T[0]; for (i = 0; i < n; i++) T[i] = T[i + 1]; T[n - 1] = temp; for (i = 0; i < n; i++) printf("\ %i |", T[i]); if (T[i] > maxx) { maxx = T[i]; } if (T[i] < minx) { minx = T[i]; } getch(); return 0; }
Решение задачи: «Сдвиг массива на одну позицию вправо»
textual
Листинг программы
#include <stdlib.h> #include <time.h> #include <stdio.h> #include <math.h> int main() { int T[12], i, n = 0, maxx, minx, M, temp; while ((n < 1) || (12 < n)) { //system("cls"); printf("Vvedite n <= 12, n= "), scanf("%i", &n); } srand(time(NULL)); printf("Vektor Y\n|"); minx = 0; maxx = 0; for (i = 0; i < n; i++) { T[i] = rand() % 500; printf(" %i |", T[i]); if (T[maxx] < T[i]) { maxx = i; } if (T[i] < T[minx]) { minx = i; } } M = (T[minx] + T[maxx]) / 2; M++; printf("\n\n"); srand(time(NULL)); printf("Vektor T\n|"); temp = T[n - 1]; for (i = n - 1; 0 < i; --i) { T[i] = T[i - 1]; } T[0] = temp; for (i = 0; i < n; ++i) { printf(" %i |", T[i]); } return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д