Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

καλημερα εχω τον παρακατω κωδικα και με βγαζει σφαλμα "line 44 error: expected primary-expression before ']' token"

 

#include <iostream>
#include <cstdio>
#include <ctime>
#include <cstdlib>


using namespace std;
bool Linear_search ( int *list, int size, int key, int*& rec );


bool Linear_search ( int *list, int size, int key, int*& rec )
{
// Basic sequential search
    bool found = false;
    int i;
    for ( i = 0; i < size; i++ )
    {
        if ( key == list[i] )
            break;
    }
    if ( i < size )
    {
        found = true;
        rec = &list[i];
    }
    return found;
}




int main()
{
    int i,arith,thes;
    int pin[1000];
    bool b;




    for(i=1; i<=1000; i++)
    {
        pin[i]=rand() % 1000+1;
    }


    clock_t start;
    double duration;
    arith=715;
    start=clock();


    b=Linear_search(pin[],1000,arith,thes);
}
 
Δημοσ.

Πώς περνάμε pointer σε function;

Εκτός αυτού, έχει κάνει include 2 άκυρες βιβλιοθήκες και τίποτα από αυτά που κάνει μέσα είναι C++.

Δημοσ.

Να προσθέσω και γω για εδώ:

pin[i]=rand() % 1000+1;

Oτι το spacing σου είναι λίγο παραπλανητικό αφού το mod '%' έχει μεγαλύτερη προτεραιότητα απο την πρόσθεση. 

Καλό θα ήταν να διαχωρίζεις τέτοιες πράξεις με παρενθέσεις για να είναι η πρόθεσή σου ξεκάθαρη.

Απλά ένα μικρό tip και απο μένα.

  • Like 2
Δημοσ.

1. Η pin μεταβλητή που είναι ένας πίνακας σε ακεραίους, στην ουσία είναι ένας δείκτης σε ENAN ακέραιο, μόνο που στην επόμενη θέση μνήμης έχει και άλλους 999 συνεχόμενους ακέραιους. Αυτό σημαίνει ότι η pin είναι στην ουσία int *. Άρα στην κλήση της Linear search παιρνάς pin και όχι pin[] 

2. Ειίσαi σίγουρος ότι θες να περάσεις αναφορά σε δείκτη στο τελευταίο όρισμα της LinearSearch? Εγώ προσωπικά το έχω δει ελάχιστες φορές αυτό. 

Δημοσ.

Δες και stl style.

(Χωρις temlate)

int* find_first(int *first, int *last, int key)

 

Θα επιστρεφςι τον δεικτη αν το βρει, ή αν οχι, θα επιστρεφει το last

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...