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

    calcola le occorrenze in un array con c++

    ragazzi avrei bisogno del vostro aiuto per risolvere questo programma in c++
    con le funzioni

    Dato un array x di interi verificare che i numeri che occorrono in x occorrono lo stesso numero di volte
    Ad esempio se abbiamo {3,1,-1,-1,3,1} mi restituisce TRUE
    se abbiamo l'array {1,2,3,3} la condizione non è verificata

    io ci ho provato a farlo ma non so quante funzioni devo utilizzare se potete spiegarmi per bene come fare mi date un grande aiutoo visto che proprio non ci riesco
    ecco il codice scritto da me:
    ***se qualcuno ha msn e vuol darmi il suo contatto per spiegarmi meglio a risolvere questo problema con le funzioni mi farebbe un grandissimo piacere


    #include<iostream>
    using namespace std;
    int occorrenze(int [], int , int);
    int main()
    {
    const int DIM=100;
    int a[DIM];
    int n=0;
    int dimensione_logica=0;

    int num;
    bool test=true;
    cout<<"Inserire dei numeri o una lettera per terminare"<<endl;
    while(test && n<DIM)
    {
    cin>>num;
    if(!cin.fail())
    {
    a[n]=num;
    n++;
    }
    else
    test=false;
    }
    dimensione_logica=n;
    cout<<endl<<"la dimensione logica è uguale a "<<n<< endl;

    int x;
    cout<<"Inserisci un numero e verifica quante volte ci sta nell'array";
    cin>>x;
    }
    int occorrenze(int a[], int n, int x)
    {
    int i;
    int contatore =0;
    for(i=0;i<n;i++)
    if(a==x)
    contatore++;
    return contatore;
    }

    bool funzione(int a[], int n)
    {
    bool condizione=true;
    int i=1;
    int occ=occorrenze(a,n,a[0]);
    while(i<n && condizione)
    {
    if(occ!=occorrenze(a,n,a))
    condizione=false;
    i++;
    }
    return condizione;
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813
    in occorenze e funzione ci sono vari errori...
    tu fai if (a==x)
    in quanto dovresti fare if (a[i]==x)

    e ci sono altri punti in cui fai questo errore
    non so se il tuo approccio sia corretto o meno, ma ti suggerisco di fare la seguente

    prendi il tuo vettore e lo ordini
    quindi ti trovi in situazioni tipo

    a a a b b b c ...

    dove a b c sono dei numeri...
    scorri i primi numeri uguali nel vettore e ti conservi questo numero in una variabile, chiamiamola "uguali"

    se uguali NON E' multiplo della dimensione dell'array, allora la condizione è sicuramente falsa altrimenti trovi la seconda sequenza di numeri uguali e ne conti le occorenze e vedi se coincide con uguale Se è vero, continui, altrimenti restituisci false.

    io farei così
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

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.