PROGRAMMA C : ricerca sequenziale

ilyily87
salve a tutti, ho ancora bisogno di voi.
Devo scrivere un programma C che effettui una ricerca di un elemento in un array e ne restituisca tutte le posizioni in cui compare!

Ovviamente nn mi funziona

potreste darmi una mano?





#include <stdio.h>
#include <conio.h>
#define MAX 50
typedef int vettore[MAX];


.
.
.
.
.
.


void cerca(const vettore v, const float elem,vettore posizione, bool &trovato){
  printf("\nInserisci l'elemento da ricercare all'interno del vettore : ");
  scanf("%d", &elem);
  trovato=false;
  int j=0;
  posizione[j]=0;
  for(register int i=1;i<=v[0];i++){
     if(elem==v[i]){
        trovato=true;
        j++;
        posizione[j] = i;        
        printf("\n l'ememento e' presente e si trova nelle posizioni [%d] ",posizione[j]);
        }
  }


}




mica devo fare un altro ciclo for per j?

spero possiate aiutarmi
ila

Risposte
_luca.barletta
infatti, aspetto una conferma dall'interessato

ilyily87
innanzitutto grazie ad entrambi,
per quanto riguarda la traccia specifica, non ce n'è una vera e propria in quanto sto cercando di esercitarmi su + cose possibili....probabilmente avrei dovuto eliminarli proprio dal vettore x rendere le cose un po' + complicate :D

Splair
ciao,
ti posto un algoritmo molto semplice per la risoluzione del tuo esercizio....

#include <iostream>
using namespace std;
      int main()    {
          int i,n;
          int const N=50;
          int a[N], b[N];
              
          cout<<"Inserisci il numero di elementi dell'array: " <<endl;
          cin>>n;
          
          int k=0;
          
          for(i=0;i<n;i++){
                 cout<<"Inserisci l'elemento di posizione " << i+1<<endl;
                 cin>>a[i];
                 if(a[i]%2!=0){
                               b[k]=a[i];
                               k++;
                               }
                 }
                 cout<<"L'array di numeri dispari e': ";
                 for(i=0;i<k;i++){
                                  cout<<b[i]<<" ";
                                  }
                 cin>>ws;
                 }

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.