Somma di due numeri, variabili probabilmente sbagliate.

di
Anonimizzato12084
il
4 risposte

Somma di due numeri, variabili probabilmente sbagliate.

L'argomento è abbastanza stupido, ma non riesco a capire dove sia l'errore, mi sembra tutto giusto!
Sto svolgendo quest'esercizio:
Completare e correggere il seguente programma
#include <stdio.h>
void main()
{
const ... a = 4194937293;
const short b = 32765;
... x;
x = a * b ;
printf("x risulta = %15.0 ... \n", x);
}


Che ho "risolto" in questo modo:
#include <stdio.h>

void main()
{
    const unsigned long a = 4194937293;
    const unsigned short b = 32765;
    unsigned long x;

    x = a * b;
    printf("x risulta %15.0u \n",x);
}

Il risultato è diverso da quello ottenuto con la calcolatrice, in cos'ho sbagliato? Eppure credo sia stato tutto dichiarato giusto!

Vi ringrazio in ogni caso per questa scemenza che non riesco a risolvere, forse perchè son scemo io


Edit: sarà che non ha spazio a sufficienza? Posso definirne ancora di più?

4 Risposte

  • Re: Somma di due numeri, variabili probabilmente sbagliate.

    Il risultato di quella moltiplicazione va oltre la capacità di un unsigned long
  • Re: Somma di due numeri, variabili probabilmente sbagliate.

    oregon ha scritto:


    Il risultato di quella moltiplicazione va oltre la capacità di un unsigned long
    E come posso assegnare più spazio? Esiste qualcosa come "long long"?
  • Re: Somma di due numeri, variabili probabilmente sbagliate.

    Sì ...
    
        const unsigned long a = 4194937293;
        const unsigned short b = 32765;
        unsigned long long x;
    
        x = (unsigned long long)a * b;
        printf("x risulta %I64d \n",x);
    
       return 0;
    
  • Re: Somma di due numeri, variabili probabilmente sbagliate.

    oregon ha scritto:


    Sì ...
    
        const unsigned long a = 4194937293;
        const unsigned short b = 32765;
        unsigned long long x;
    
        x = (unsigned long long)a * b;
        printf("x risulta %I64d \n",x);
    
       return 0;
    
    Ti ringrazio, mi scuso per il disturbo
    Era davvero una scemenza! Ed non avevo pensato al cast >.< (a parte che non conoscevo proprio nè long long nè come stamparlo a schermo poi)

    Grazie ancora!
Devi accedere o registrarti per scrivere nel forum
4 risposte