feat: Initial commit
This commit is contained in:
58
Laboratorio 4/ruota.c
Normal file
58
Laboratorio 4/ruota.c
Normal file
@@ -0,0 +1,58 @@
|
||||
// Laboratorio 4 - Esercizio 2
|
||||
// Matteo Schiff - s295565
|
||||
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#define MAX_N 30
|
||||
|
||||
void ruota(int v[MAX_N], int N, int P, int dir);
|
||||
|
||||
void ruota(int v[MAX_N], int N, int P, int dir) {
|
||||
int t;
|
||||
|
||||
P = P % N;
|
||||
|
||||
for (int x = 0; x < P; x++) {
|
||||
if (dir == 1) {
|
||||
t = v[0];
|
||||
for (int i = 0; i < N - 1; i++) {
|
||||
v[i] = v[i+1];
|
||||
}
|
||||
v[N-1] = t;
|
||||
} else {
|
||||
t = v[N-1];
|
||||
for (int i = N-1; i > 0; i--) {
|
||||
v[i] = v[i-1];
|
||||
}
|
||||
v[0] = t;
|
||||
}
|
||||
}
|
||||
|
||||
for (int x = 0; x < N; x++) {
|
||||
printf("%d ", v[x]);
|
||||
}
|
||||
putchar('\n');
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
int V[MAX_N], N, P, dir;
|
||||
|
||||
do {
|
||||
printf("Inserisci N compreso tra 0 e %d: ", MAX_N);
|
||||
} while(scanf("%d", &N) != 1 || N > MAX_N || N < 0);
|
||||
|
||||
printf("Inserisci il vettore di lunghezza %d: ", N);
|
||||
for(int i = 0; i < N; i++) {
|
||||
scanf(" %d", &V[i]);
|
||||
}
|
||||
|
||||
do {
|
||||
printf("Inserisci il numero di rotazioni e la direzione (formato '<rotazioni> <direzione>'): ");
|
||||
scanf(" %d %d", &P, &dir);
|
||||
ruota(V, N, P, dir);
|
||||
} while (P != 0);
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user