Сдвиг массива на одну позицию вправо - 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;
}