RISOLTO Programma Quadrati Perfetti

Pubblicità

davicos

Utente Attivo
Messaggi
226
Reazioni
11
Punteggio
43
Salve a tutti,
come esercizio devo inserire un numero letto da tastiera ed in seguito il programma stampa tutti i quadrati perfetti dei numeri precedenti al numero inserito (eccetto i negativi).

Allora ho risolto così:
Codice:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int x;
    int quadrato = 0;
    int n = 0;

    printf("Inserire numero: ");
    scanf("%d", &x);

    while(n != x)
    {
    n = n + 1;
    quadrato = pow(n,2);
    printf("quadrati: %d", quadrato);
    printf("\n");
    }

    return 0;
}

Il problema è quando va a calcolare il quadrato di 5 e viene fuori 24. Ho controllato con il debug ma è tutto in regola nel senso che non si va a sottrarre nulla. Se invece di utilizzare il comando della potenza faccio n*n allora il problema non si presenta. Mi piacerebbe sapere il perchè di ciò.

Grazie!
 
Ultima modifica da un moderatore:
Ricordati di utilizzare il tag CODE quando posti del codice. L'unica cosa che vedo, è la mancanza di #include <math.h>.
Per il resto è corretto.
 
Ricordati di utilizzare il tag CODE quando posti del codice. L'unica cosa che vedo, è la mancanza di #include <math.h>.
Per il resto è corretto.


No anche se lo metto è uguale e poi non mi da errore quindi..

- - - Updated - - -

La funzione pow() lavora sul double, magari usando un int ci sono problemi di arrotondamento ?

Hai ragione infatti ora funziona. La cosa strana per così dire è che se la stessa potenza la eseguo da sola, quindi faccio solo la potenza di 5 non mi crea nessun problema. Magari va in conflitto con gli altri numeri della sequenza. Bene comunque grazie!!
 
Hai ragione infatti ora funziona. La cosa strana per così dire è che se la stessa potenza la eseguo da sola, quindi faccio solo la potenza di 5 non mi crea nessun problema. Magari va in conflitto con gli altri numeri della sequenza. Bene comunque grazie!!

Che compilatore stai utilizzando? Ho provato il tuo codice con MinGw e con CL.exe (Microsoft), e non ho avuto quel problema.
 
Pubblicità
Pubblicità
Indietro
Top