Chi mi aiuta please?!!

di il
4 risposte

Chi mi aiuta please?!!

Salve,sono nuova di questo forum e premetto che sarei veramente super grata a chi di voi mi aiuterà...Fra qualche giorno ho l'esame di informatica in cui è richiesto di programmare in C ecco,io ho veramente delle difficoltà in questo esercizio:

Definire una struct (record per Pascal) di nome AT con un campo A di tipo double (real) ed un campo B di tipo int (integer). Quindi scrivere una funzione (procedura pascal) con ingresso un parametro V di tipo AT che restituisce 1 se il campo B di V è il più grande intero minore o uguale del valore contenuto nel campo A di V, 0 altrimenti. Attenzione è vietato assegnare ad una variabile di tipo int un valore di tipo double. Ad esempio, se il campo A contiene il valore 7.3 ed il campo B contiene il valore 7 la funzione (procedura) restituisce 1; se il campo A contiene il valore 5.6 ed il campo B contiene il valore 4 la funzione (procedura) restituisce 0.

So che è sbagliato cio' che ho scritto io proprio perchè non posso confrontare una variabile double con una int ma non so proprio come fare!!!

#include <stdio.h>

typedef struct { double A; int B;} AT;

void f( AT V)

{

if (V.A>=V.B)

return 1;

return 0;

}

Grazie mille a chi di voi,anima pia,mi risponderà!!!
Elena

4 Risposte

  • Re: Chi mi aiuta please?!!

    Credo che la risposta al tuo problema sia un semplice casting esplicito in poche parole ti basta scrivere una cosa del genere:

    if (V.A >= (double) V.B)
    return 1;
    else
    return 0;

    Spero di esserti stato utile ciao ciao

  • Re: Chi mi aiuta please?!!

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>
    Salve,sono nuova di questo forum e premetto che sarei veramente super grata a chi di voi mi aiuterà...Fra qualche giorno ho l'esame di informatica in cui è richiesto di programmare in C ecco,io ho veramente delle difficoltà in questo esercizio:

    Definire una struct (record per Pascal) di nome AT con un campo A di tipo double (real) ed un campo B di tipo int (integer). Quindi scrivere una funzione (procedura pascal) con ingresso un parametro V di tipo AT che restituisce 1 se il campo B di V è il più grande intero minore o uguale del valore contenuto nel campo A di V, 0 altrimenti. Attenzione è vietato assegnare ad una variabile di tipo int un valore di tipo double. Ad esempio, se il campo A contiene il valore 7.3 ed il campo B contiene il valore 7 la funzione (procedura) restituisce 1; se il campo A contiene il valore 5.6 ed il campo B contiene il valore 4 la funzione (procedura) restituisce 0.

    So che è sbagliato cio' che ho scritto io proprio perchè non posso confrontare una variabile double con una int ma non so proprio come fare!!!

    #include <stdio.h>

    typedef struct { double A; int B;} AT;

    void f( AT V)

    {

    if (V.A>=V.B)

    return 1;

    return 0;

    }

    Grazie mille a chi di voi,anima pia,mi risponderà!!!
    Elena



    <hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->
  • Re: Chi mi aiuta please?!!

    <BLOCKQUOTE id=quote><!--<font size= face="" id=quote>-->quote:<hr height=1 noshade id=quote>
    Salve,sono nuova di questo forum e premetto che sarei veramente super grata a chi di voi mi aiuterà...Fra qualche giorno ho l'esame di informatica in cui è richiesto di programmare in C ecco,io ho veramente delle difficoltà in questo esercizio:

    Definire una struct (record per Pascal) di nome AT con un campo A di tipo double (real) ed un campo B di tipo int (integer). Quindi scrivere una funzione (procedura pascal) con ingresso un parametro V di tipo AT che restituisce 1 se il campo B di V è il più grande intero minore o uguale del valore contenuto nel campo A di V, 0 altrimenti. Attenzione è vietato assegnare ad una variabile di tipo int un valore di tipo double. Ad esempio, se il campo A contiene il valore 7.3 ed il campo B contiene il valore 7 la funzione (procedura) restituisce 1; se il campo A contiene il valore 5.6 ed il campo B contiene il valore 4 la funzione (procedura) restituisce 0.

    So che è sbagliato cio' che ho scritto io proprio perchè non posso confrontare una variabile double con una int ma non so proprio come fare!!!

    #include <stdio.h>

    typedef struct { double A; int B;} AT;

    void f( AT V)

    {

    if (V.A>=V.B)

    return 1;

    return 0;

    }

    Grazie mille a chi di voi,anima pia,mi risponderà!!!
    Elena



    <hr height=1 noshade id=quote></BLOCKQUOTE id=quote><!--</font id=quote><font face="" size= id=quote>-->
  • Re: Chi mi aiuta please?!!

    Grazie mille!!!
    Mi sei stato d'aiuto...Thanks
    Ele
Devi accedere o registrarti per scrivere nel forum
4 risposte