Esercizio che non riesco a fare

di il
8 risposte

Esercizio che non riesco a fare

Ragazzi un piccolo aiutino , l'esercizio è il seguente :
Date le seguenti operazioni , scrivere un programma che dichiari opportunamente le variabili e visualizzi i risultati delle operazioni :

a = 6
b = 'a'
c = 12331222

d = 8.14245322

e = ((c*d)^2%10

io ho fatto così
#include <stdio.h>
#include <stdlib.h>
// Esercizion N4
int main()
{
int a =6;
char b = 'A';
int c = 12331222;
float d = 8.14245322;
double e =  ((c*d)^2)%10;
printf("la variabile a è = %d",a);
printf("la variabile b (carattere) è = %c",b);
printf("la variabile c  è = %d ",c);
printf("la variabile d è (float) = %f",d);
printf(" la variabile e è = %lf",e);

}
solo che mi da errore! grazie anticipatamente

8 Risposte

  • Re: Esercizio che non riesco a fare

    Più info sull'errore grazie
  • Re: Esercizio che non riesco a fare

    Mi dice che non posso moltiplicare c e d perchè sono tipi diversi
  • Re: Esercizio che non riesco a fare

    Forte questo esercizio! Il fatto è che non puoi usare ^ e % con dei float, quindi devi dichiarare int d = 8.12145 anche se perdi i decimali e non sembra avere senso, o no? Non vedo altro modo.
  • Re: Esercizio che non riesco a fare

    Non posso perchè la traccia mi dice così!
  • Re: Esercizio che non riesco a fare

    Ma non puoi fare l'XOR dei float è specificato nello standard. Se poi il prof può dilli che si sbaglia.
    
    error C2296: '^' : illegal, left operand has type 'float'
    
    Traccia dello standard
    5.12 Bitwise exclusive OR operator

    exclusive-or-expression:
    exclusive-or-expression
    inclusiove-or-expression ^ and_expression

    The usual arithmetic conversions are performed: the result is the bitwise exclusive OR function of the operands. The operator applies only to integral or enumeration operands.
  • Re: Esercizio che non riesco a fare

    Veramente la traccia non ti dice che devi dichiarare d come float, ma devi cercare quelle dichiarazioni che fanno funzionare il tutto. E se non ci fosse questo inghippo sarebbe troppo facile.
  • Re: Esercizio che non riesco a fare

    int e =  ((int)(c*d)^2)%10;
  • Re: Esercizio che non riesco a fare

    Secondo me questo non vale, il testo dice che devi scrivere le dichiarazioni, non modificare le espressioni. Ovviamente in questo modo funziona.
Devi accedere o registrarti per scrivere nel forum
8 risposte