Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    esercizio di programmazione in c

    Ragazzi ho un problema con questo esercizio che chiede di trovare dato un vettore l'elemento più grande attraverso l'uso di una funzione ricorsiva. vi posto il codice e l'errore che mi da nel momento di compilare.
    //funzione ricorsiva che stampa il più grande dei numeri di un array di interi
    #include<stdio.h>
    #include<stdlib.h>
    int funzvalmax(int* ,int);
    int main(void){
    int vett[100];
    int n,i,valoremassimo;
    printf("inserisce la dimensione del vettore\n");
    scanf("%d",&n);
    for(i=0;i<=n;i++){
    printf("inserisci gli elementi del vettore %d\n",i+1);
    scanf("%d",&vett[i]);
    }
    printf("gli elementi del vettore sono\n");
    for(i=0;i<=n;i++)
    printf("%d\n",vett[i]);
    valoremassimo=funzvalmax(vett,n);
    printf("l'elemento del vettore più grande è %0.f\n",valoremassimo);
    system("pause");
    return 0;
    }
    int funzvalmax(int *a,int f){
    int i,valmax;
    int v[100];
    *a=v[0];
    if (*a=v[0])
    valmax=v[0];
    else
    for(i=f;i>=0;i--){
    a[i]>funzvalmax(a[i],f-1);
    valmax=a[i];
    return valmax;
    }
    }


    questo è l'errore: C:\Users\Sergio\Desktop\valore massimo vettore funzione ricorsiva.cpp: In function `int funzvalmax(int*, int)':
    C:\Users\Sergio\Desktop\valore massimo vettore funzione ricorsiva.cpp:30: error: invalid conversion from `int' to `int*'
    C:\Users\Sergio\Desktop\valore massimo vettore funzione ricorsiva.cpp:30: error: initializing argument 1 of `int funzvalmax(int*, int)'

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non è chiarissimo senza i tag CODE (come da regolamento) ma sicuramente questa linea

    a[i]>funzvalmax(a[i],f-1);

    sia perchè il primo parametro a[i] non è un puntatore ad intero, sia perché non significa nulla da sola ... sembra che manchi qualcosa .. come una if ...

    Non penso che basti correggere quella linea però, perché non è convincente il fatto che tu utilizzi all'interno della funzione un vettore

    int v[100];
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    devi perdonarmi per i tag code sono un novizio
    non capisco a[i] perché non un puntatore.. come dovrei correggerlo?
    la avevo scritto originariamente così
    *a=v[0]; e //*a è un puntatore che punta all'inizio del vettore no?
    if (*a=v[0])
    valmax=v[0]; //questo è il caso base della mia funzione
    else
    for(i=f;i>=0;i--){
    if (*a>funzvalmax(*a,f-1)) // e qua spunta l'errore
    valmax=v[i];
    return valmax;

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

    a

    mentre a[i] è un elemento del vettore.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    infatti nella mia correzione ho messo *a che punta al primo elemento del vettore ma l'errore rimane

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da SpecialOne1992
    infatti nella mia correzione ho messo *a che punta al primo elemento del vettore ma l'errore rimane
    Ti ho scritto

    a

    e non *a


    a è il puntatore mentre *a è il dato intero puntato. Non sono la stessa cosa.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    e io devo confrontare il dato intero puntato per vedere quale degli elementi è più grande. non capisco dove sta l'errore

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da SpecialOne1992
    e io devo confrontare il dato intero puntato per vedere quale degli elementi è più grande. non capisco dove sta l'errore
    Lascia perdere questo. Intanto correggi il fatto che il parametro passato deve essere un puntatore e quindi passa il valore

    a
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    quindi così: a=&v[0] ? così a punta al primo elemento del vettore?

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da SpecialOne1992
    quindi così: a=&v[0] ? così a punta al primo elemento del vettore?
    NO.

    E'

    a

    già il puntatore al primo elemento del vettore.

    Il vettore in questione è vett che sta nel main e che viene passato alla funzione.
    Il vettore v che usi nella funzione non ha senso e non devi utilizzarlo.
    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.