08/05/12 19:12
ancestral
Buon Giorno a tutti
Io devo fare un programma che gestisce l'accensione, lo spegnimento e la visualizzazione dello stato di 8 lampadine.
0=spento
1=acceso
le 8 lampadine sono rappresentate dalla variabile 'c' dichiarata char.
questo è il mio codice
putroppo non so dirvi bene dove sia l'errore, ma penso che non funzioni bene lo spegnimento e la visualizzazione.
Riuscite a correggermelo o almeno farmi capire dove sbaglio??
Grazie
Io devo fare un programma che gestisce l'accensione, lo spegnimento e la visualizzazione dello stato di 8 lampadine.
0=spento
1=acceso
le 8 lampadine sono rappresentate dalla variabile 'c' dichiarata char.
questo è il mio codice
#include <stdio.h> #include <math.h> main () { char c, mask, d; int z, n, j, i, h, f; c=c & 0 ; i=0; h=0; j=0; for(j=1;j<9;j++) { h=n-1; c=c & (char)pow(2.0, h); if (c==1) { printf("1"); } else { printf("0"); } } printf("\n"); do { printf("inserisci 1 se vuoi accendere, 0 se vuoi spegnere, 2 se vuoi visualizzare \n"); scanf("%d", &z); if (z==1) { printf("inserisci il numero della lampadina che vuoi accendere \n"); scanf("%d", &n); h=n-1; d=c | (char)pow(2, h); printf("%d", d); if (d==0) { printf("La lampadina è gia accesa \n"); } else { printf(" Hai acceso la lampadina \n"); c=d; } } else { if (z==0) { printf("inserisci il numero della lampadina che vuoi spegnere \n"); scanf("%d", &n); h=n-1; d=c & (char)pow(2, h); printf("%d", d); if (d!=0) { printf("La lampadina è gia spenta \n"); } else { printf("Hai spento la lampadina \n"); c=d; } } else { for(j=0;j<8;j++) { c=c & (char)pow(2.0, j); for(i=1;i<9;i++) { c=c & (int)pow(2.0, i); if (c==1) { printf("1"); } else { printf("0"); } } printf ("\n"); if (c==1) { printf("1"); } else { printf("0"); } printf("\n"); } } } printf(" \n"); printf("Digita 0 se vuoi ripetere l'esecuzione, altrimenti digita 1 \n"); scanf("%d", &i); }while (i==0); }
putroppo non so dirvi bene dove sia l'errore, ma penso che non funzioni bene lo spegnimento e la visualizzazione.
Riuscite a correggermelo o almeno farmi capire dove sbaglio??
Grazie
aaa