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.
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);
}
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:
29 [Warning] comparison between pointer and integer
questo è il listato che genera l'errore:
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");
}
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.
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.