suchen von Elementen in einem array mit einer Funktion c++

Ich bin neu in C++ und haben gerade angefangen zu lernen-Funktionen. Ich habe ein Programm zur Suche eines Elements in einem 1-d array mit einer Funktion Suche. Aber es gibt einen logischen Fehler, die ich nicht nachvollziehen kann! Ist es wegen der Art, wie die Funktion deklariert ist ?

int pos;    
using namespace std;

int search(int *a, int size, int num);

int search(int *a, int size, int num)  
{      
    int i;    
    for(i=0; i<size; i++)    
    {    
        if(a[i]==num)    
        {
            pos=i; return 1;
        }
        else
            return 0;
    }
}

int main()
{  
    int a[5], size, num, i;    
    system("cls");    
    cout<<"Enter size(<5) \n";
    cin>>size;
    cout<<"Enter the elements of the array \n";
    for(i=0; i<size; i++)
        cin>>a[i];
    cout<<"Enter the number to be searched \n";
    cin>>num;
    int b = search( a, size, num);
    if(b==0)
    {
        cout<<"Element not found!"; exit(0);
    }
    else
        cout<<"Element found at position "<<(pos+1);
    system("pause");
    return 0;
}

Ausgabe:

Enter size(<5)

4

Enter the elements of the array

4

3

2

1

Enter element to be searched

4

Element not found!
  • bitte formatieren Sie Ihre Frage und stellen "else return 0;" außerhalb "für"
  • Auch nach dieser änderung immer noch nicht korrekt ausgeführt :- for(i=0; i<Größe; i++) { if(a[i]==num) { pos=i; return 1; } return 0; } }
  • Ihre Funktion Suche soll nicht return false inside 'für' bloc. ein Beispiel nehmen und Durchlaufen Sie es manuell, du findest die Fehler selbst sicher!!!
InformationsquelleAutor Aswin Anil | 2014-12-16
Schreibe einen Kommentar