Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    esercizio in c++

    ciao ragazzi mi serve un aiuto (consiglio)
    devo svolgere questo esercizio in c++:
    Scrivere una funzione che riceve come parametro di ingresso/uscita un array A di numeri interi
    e come parametro di ingresso la sua dimensione n e che modifica A eliminando
    il suo elemento piu' grande (se e' presente piu' volte ne deve eliminare solo una copia).
    Ad esempio se A=(3,4,1,4,5,2,3) allora la funzione deve eliminare
    5, ad esempio producendo A=(3,4,1,4,2,3), lasciando vuota 'ultima cella dell'array.

    si devono utilizzare le liste per forza o si puo' fare in un modo piu' semplice.????
    grazie
    :master:

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Perche' vuoi usare le liste? Hai una soluzione con le liste?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    nn ho una soluzione con le liste.
    adesso ti scrivo il codice ke stavo provando:

    # include <iostream>
    using namespace std;
    const int n=7;//dimensione array

    int funz(int a[],int n){
    int i,grande=0;
    for(i=0;i<n;i++)
    if(a[i]>grande){
    grande=a[i];}
    //in questo punto mi blocco. so qual'e' l'elem maggiore, ma nn so come faccio a fare sciftare gli altri verso sinistra

    return 0;

    }

    int main(){
    int a[n];
    int i;
    cout<<"inserisci"<<n<<" valori per l'array a:"<<endl;
    for(i=0;i<n;i++)
    cin>>a[i];

    funz(a,n);

    cout<<"l'array a, adesso e' composto cosi"<<endl;
    for(i=0;i<n;i++)
    cout<<a[i];

    return 0;
    }

  4. #4
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Non capisco a cosa serva questa funzione:
    codice:
    int funz(int a[],int n){
    	int i, grande=0;
    	for(i=0;i<n;i++)
    		if(a[i]>grande){
    	grande=a[i];}
    //in questo punto mi blocco. so qual'e' l'elem maggiore, ma nn so come faccio a fare sciftare gli altri verso sinistra
    Tu devi cercare il numero maggiore ma non memorizzare il suo valore quanto la sua posizione. Io farei così:
    codice:
    void fun(int& a[], int n)
    {
    	int index, max = a[0];
    	for(int i=0; i<n; i++)
    	{
    		if(max<a[i])
    		{
    			max = a[i];
    			index = i;
    		}
    	}
    	for(int i=index; i<n-1; i++)
    		a[i] = a[i+1];
    }
    In questo caso però non fai proprio quello che vuoi tu ovvero che se hai un input di questo tipo:
    codice:
    input: vet = {1,6,7,8,4,3}
    output: vet = {1,6,7,4,3,3}
    Per avere questo:
    codice:
    output: vet = {1,6,7,4,3}
    che credo sia quello che ti aspetti devi ricorrere alla gestione dinamica della memoria.

    P.S. Le funzione che ho scritto non so se funzionano, non l'ho compilata

  5. #5
    in pratica tu con il primo for e l'if cerchi l'elemento maggiore, cioe' la posizione in cui si trova nell'array e viene messo in index
    con il secondo for si spostano gli elementi
    giusto??

  6. #6
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Sì, però proprio come hai detto te scorro, non elimino.. spero di essere stato chiaro.

  7. #7
    ok grazie

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

    Moderazione

    Quando scegli il titolo per la discussione, fai attenzione che non sia troppo generico.

    Hai creato due discussioni chiamate, rispettivamente, "Esercizio c++" e "Esercizio c++ sulla ricorsione"... mentre il secondo, bene o male, fa capire qualcosa del contenuto, il primo decisamente no... nota, infatti, che entrambi i titoli erano molto simili tra di loro.

    Ho corretto questo, rendendolo più chiaro.


    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

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 © 2024 vBulletin Solutions, Inc. All rights reserved.