Salve a tutti, come sicuramente si intuirà dal titolo ho un problema con un listato in C.
Praticamente sto provando a rifare in C (per impararne la sintassi) alcuni programmi fatti a scuola in Pascal e, mentre con quest'ultimo fila tutto liscio, in C il listato mi genera un errore su un ciclo do ... while.
Così come lo vedete il listato, una volta compilato, funziona benissimo, ma se invece provo a farlo come era l'originale in Pascal (dove, al posto di dichiarare/leggere wh come un intero, lo dichiaravo e leggevo come stringa) mi genera un errore di questo genere:codice:#include <stdio.h> #include <conio.h> int somma, max_num, i, somma1, wh; main(){ do { printf("Inserire il numero di quadrati da sommare.\n"); scanf("%i",&max_num); if (max_num <= 0) { printf("Non e' possibile inserire numeri negativi o zero.\n"); scanf("%i"); } i = 0; somma = 0; do { somma = (i * i) + somma; printf(" %d",i); printf(") La somma e': %d\n",somma); i++; } while (i <= max_num); printf("Continuare? S/N.\n"); scanf("%i",&wh); } while (wh != 1); }
29 [Warning] comparison between pointer and integer
questo è il listato che genera l'errore:
Il programmino è relativamente semplice, e non fa altro che prendere un intero in input e calcolarne la somma di tutti i quadrati fino a quell'intero (e questo lo fa); ma ha la pecca di avere questo ciclo do ... while ribelle.codice:#include <stdio.h> #include <conio.h> char wh[2]; int somma, max_num, i, somma1; main(){ do { printf("Inserire il numero di quadrati da sommare.\n"); scanf("%i",&max_num); if (max_num <= 0) { printf("Non e' possibile inserire numeri negativi o zero.\n"); scanf("%i"); } i = 0; somma = 0; do { somma = (i * i) + somma; printf(" %d",i); printf(") La somma e': %d\n",somma); i++; } while (i <= max_num); printf("Continuare? S/N.\n"); scanf("%s",&wh); } while (wh != "s"); }
Sono io che non ho capito come leggere/dichiarare le variabili char e string, o sbaglio la sinstassi da qualche parte?
Per il resto, ci sono altri errori di qualsiasi genere? (anche se sono errori di stile, mi interessa anche imparare a scrivere programmi ben formati)
Grazie a tutti anticipatamente.

Rispondi quotando
I know 