Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Gestire un vettore di 10 elementi utilizzando lo shift
- */
- #include <stdio.h>
- int main() {
- int v[10],i,j = 0,sc,n; // v => vettore da gestire, i => contatore per i cicli for, j => indice per il push, sc => scelta del menù, n => numero da inserire nel push
- for (i = 0; i < 10; i++) { // Riempio il vettore di zeri
- v[i] = 0;
- }
- while (1) {
- printf("1) Push\n");
- printf("2) Pop\n");
- printf("3) Stampa\n");
- printf("DEFAULT) Esci\n");
- scanf("%d", &sc);
- switch (sc) {
- case 1:
- if(j > 9){
- printf("Coda piena, push non consentito\n");
- }else{
- printf("Inserisci il numero (!= 0) > ");
- scanf("%d", &n);
- if(n == 0){ // Non consento l'inserimento dello zero perché lo tratto come valore di controllo per gli spazi vuoti (non necessario ma utile ai fini dell'usabilità)
- printf("Inserimento non consentito\n");
- }else{
- v[j] = n;
- j++;
- }
- }
- break;
- case 2: // Pop
- if(j == 0){ // Se l'indice è uguale a zero, allora ancora la coda è vuota
- printf("Coda vuota, pop non consentito\n");
- }else{
- printf("%d\n", v[0]);
- // Shift a sinistra di un elemento
- for(i = 0; i<9; i++){
- v[i] = v[i+1];
- }
- v[9] = 0; // In caso di coda piena, evito di trovare valori duplicati nelle posizioni 8 e 9
- j--;
- }
- break;
- case 3: // Stampa
- for (i = 0; i < 10; i++) {
- printf("%d -> %d\n", i,v[i]);
- }
- break;
- default:
- return 0;
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement