Пишу программу в "lazarus" для "дан массив размера n, осуществить циклический сдвиг элементов влево на одну позицию" не совсем понимаю, что значит циклический сдвиг.
массив выводится, но в строке сдвинутого массива почти одни нули. мне не особо нравится, как это выглядит. это так и должно быть или я что-то не так делаю?
#include <math.h>
int main()
{
float x, y1, y2, y3;
scanf("%f",&x);
y1 = log(x);
printf("Ln(x) = %f\n", y1);
y2 = 1+fabs(x);
printf("1+|x| = %f\n", y2);
y3 = (1+x*x)*x;
printf("(1+x^2)*x = %f\n", y3);
if ((y1<y2)&&(y1<y3)) {
if (y2<y3) printf("%f %f %f", y1,y2,y3);
else printf("%f %f %f", y1,y3,y2);
}
else if ((y2<y1)&&(y2<y3)) {
if (y1<y3) printf("%f %f %f", y2,y1,y3);
else printf("%f %f %f", y2,y3,y1);
}
else if (y1<y2) printf("%f %f %f", y3,y1,y2);
else printf("%f %f %f", y3,y2,y1);
return 0;
}
Пример:
0.8
Ln(x) = -0.223144
1+|x| = 1.800000
(1+x^2)*x = 1.312000
-0.223144 1.312000 1.800000
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(35,-99,99); a.Println;
Sort(a); a.Println;
Sort(a,(x,y)->x>y); a.Println
end.
Пример
-68 20 -21 -52 -31 -80 -8 84 -58 -64 88 -90 12 21 -44 -48 2 -10 41 -45 7 9 -43 -19 85 70 -95 -36 -7 -87 69 -48 -57 -60 19
-95 -90 -87 -80 -68 -64 -60 -58 -57 -52 -48 -48 -45 -44 -43 -36 -31 -21 -19 -10 -8 -7 2 7 9 12 19 20 21 41 69 70 84 85 88
88 85 84 70 69 41 21 20 19 12 9 7 2 -7 -8 -10 -19 -21 -31 -36 -43 -44 -45 -48 -48 -52 -57 -58 -60 -64 -68 -80 -87 -90 -95
begin
var a:=ArrRandom(10,-99,99); a.Println;
a:=(a[:4].OrderBy(x->x).ToArray)+(a[4:6])+(a[6:]
.OrderByDescending(x->x).ToArray);
a.Println;
end.
Пример
-50 -45 30 -67 -65 -1 3 60 69 -91
-67 -50 -45 30 -65 -1 69 60 3 -91