[C](risolto)Ciclo while ripete una volta di troppo

di il
5 risposte

[C](risolto)Ciclo while ripete una volta di troppo

Ciao a tutti so ovviamente un novello della programmazione. Ho cominciato a studiare il mio primo linguaggio (C) l'altro ieri e oggi sto cercando di fare un po di pratica. Non riesco a capacitarmi di questo fatto: il ciclo while ripete una volta di troppo, insomma si comporta come il do while (sostituendo un con l'altro infatti non fa differenza).
L'algoritmo calcola una lista dei quadrati perfetti fino ad un valore limite immesso da tastiera. Per complicarmi la vita ho usato una funzione, giusto per fare pratica, per calcolare i quadrati perfetti. Immagino sia stato abbastanza inutile ma era tanto per fare pratica.

Visto che è breve vi poso tutto il codice così è più chiaro
#include <stdio.h>

// Prototipo
int square(int i);

int main (int argc, const char * argv[]) {
	
	int x = 1, i = 1, n;
	
	
	printf("Questo algoritmo stilerà una lista dei quadrati perfetti.\nImmetti un valore limite ");
	scanf("%d", &n);
	if (n<0)
		printf("Inserisci un numero intero POSITIVO!");
	else {
		while (x<=n) {
			x = square(i);

			printf("%3d = %3d  * %3d\n", x, i, i);
			i++;
		} 
			}
return 0;

  
}

// Implemento
int square(int i) {
	return i*i;
}
Se ad esempio imposto come valore limite il 10 lui mi da:
1 = 1 * 1
4 = 2 * 2
9 = 3 * 3
16 = 4 * 4

5 Risposte

Devi accedere o registrarti per scrivere nel forum
5 risposte