Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    20

    [C++]Cosa ho sbagliato?

    Premetto che il programma che mi sono prefissato di fare è più complesso della traccia di partenza e dovrebbe essere perfezionato soprattuto per l'output di quando non trova alcun valore..
    Comunque il programma che ho creato fin qui mi da' il seguente waring durante la compilazione(ambiente devc++):
    In function `void trovaprimo(int, int, float*, float*, int&, float&)
    63 [Warning] assignment to `int' from `float'
    63 [Warning] argument to `int' from `float'

    Mi spiegate la natura dell'errore?!?...
    Grazie!

    codice:
    /*Siano assegnati in ingresso, da tastiera, due vettori di interi V1 e V2 ed un intero k.
    Si scriva un programma che individui e stampi il valore val e la posizione pos del primo elemento di V1 il cui valore è maggiore dell’elemento di posto k del vettore V2.
    Il programma deve essere articolato in funzioni (ad es.: input, output, trovaprimo).
    Suggerimento: la funzione trovaprimo riceve in ingresso V1, V2 e k e restituisce come parametri di uscita val e pos.
    Esempi
    INPUT:	V1 =  2 4 1 3 7 6 9	V2 =  3 4 5 12 1 6	k =  2
    OUTPUT:	val = 7	pos = 4
    INPUT:	V1 =  2 4 1 3 7 6 9	V2 =  3 4 5 12 1 6	k =  0
    OUTPUT:	val = 4	pos = 1
    */
    
    
    #include<iostream>
    using namespace std;
    #include<stdlib.h>
    
    //Prototipi delle funzioni
    void input(int&z, int&k, int&n ,int&t, float v1[],float v2[]);
    void trovaprimo(int n, int k,float v1[], float v2[], int &pos, float &val);
    void output(int pos, float val);
    
    int main()
    {
        int k;
        int n;
        int t,z;
        float v1[100];
        float v2[100];
        float val;
        int pos;
        
        //Chiamate delle funzioni
        input(z,k,n,t,v1,v2);
        trovaprimo(n,k,v1,v2,pos,val);
        output(pos,val);
        
        
        cout<<"\n\n";
        
        system("PAUSE");
        return 0;
    }
    
    void input(int&z, int&k, int&n ,int&t, float v1[],float v2[])
    {
        int i;
        
        cout<<"Assegna valore intero al numero di elementi del primo vettore \n";
        cin>>n;
        
        cout<<"Assegna "<<n<<" valori reali al primo vettore\n";
        for(i=0;i<n;i++)
        {
            cin>>v1[i];
        }
        
        cout<<"Assegna valore intero al numero di elementi del secondo vettore\n";
        cin>>t;
        
        cout<<"Assegna "<<n<<" valori reali al secondo vettore\n"; 
        for(z=0;z<t;z++)
        {
            cin>>v2[z];
        }
        
        cout<<"Assegna valore intero a k\n";
        cin>>k;
    }
    
    void trovaprimo(int n, int k,float v1[], float v2[], int &pos, float &val)
    {
        int i;
        int j;
        
        i=0; j=v2[k];
        while(i<n && v1[i]<j) //Posso scrivere direttamente v1[i]<v2[k]? Se no, perchè?
        {
            val=v1[i];
            pos=i;
            i++;
        }
    }
    
    void output(int pos, float val)
    {
        cout<<"val= "<<val<<"\t";
        cout<<"pos="<<pos<<"\n";
    }

  2. #2
    codice:
    ...
    j=v2[k]
    ...
    all'intero j stai assegnando un float
    ciao
    sergio

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Invito l'autore della discussione a rileggere il regolamento, per quanto riguarda i titoli delle discussioni: "Cosa ho sbagliato?" non dice nulla dell'argomento di cui si discute, quindi viola il regolamento.

    Correggo io il titolo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    20

    Re: Moderazione

    Originariamente inviato da LeleFT
    Invito l'autore della discussione a rileggere il regolamento, per quanto riguarda i titoli delle discussioni: "Cosa ho sbagliato?" non dice nulla dell'argomento di cui si discute, quindi viola il regolamento.

    Correggo io il titolo.


    Ciao.
    Hai ragione..lo sapevo che me lo avresti segnalato.. andavo un po' di fretta e non mi veniva alcun titolo in mente che fosse sia efficace che breve!
    Scusate....

    Comunque c'era anche un'altra domanda..forse ve la siete persa!
    codice:
    .....
    i=0; j=v2[k];
        while(i<n && v1[i]<j) //Posso scrivere direttamente v1[i]<v2[k]? Se no, perchè?
     .....
    Ciao..

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: Re: Moderazione

    Comunque c'era anche un'altra domanda..forse ve la siete persa!
    Il problema e' che le domande si fanno nel testo, non nel codice ...

    Posso scrivere direttamente v1[i]<v2[k]? Se no, perchè?

    Sì che puoi ... anzi, e' meglio ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.