Ultron Δημοσ. 30 Απριλίου 2013 Share Δημοσ. 30 Απριλίου 2013 Καλησπερα,εχω ενα περιεργο προβληματακι!Ρωταω τον χρηστη να καθορισει εναν πινακα (δινει int) κλπ κλπ και μετα κανει bubblesort kai selection sort. Απο το 1-14 καταχωρει τον πινακα κομπλε βγαζει αποτελεσματα κλπ κλπ αλλα μολις βαλω 15 και πανω τρωω ακυρο και κλεινει το προγραμμα ξερει κανεις τι παιζει? Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
albNik Δημοσ. 30 Απριλίου 2013 Share Δημοσ. 30 Απριλίου 2013 Το σιγουρο είναι ότι έχεις κάποιο λάθος στον κώδικα . 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Ultron Δημοσ. 30 Απριλίου 2013 Μέλος Share Δημοσ. 30 Απριλίου 2013 Το σιγουρο είναι ότι έχεις κάποιο λάθος στον κώδικα . Thanks Captain xDDDDD Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
albNik Δημοσ. 30 Απριλίου 2013 Share Δημοσ. 30 Απριλίου 2013 Συμφωνα με τις μαντικές μου ικανότητες ο πίνακάς σου είναι <15 θέσεων. Π.χ. αν τον δηλώσεις int[Ν] για Ν<8 μπορεί να κρατάει 8 θέσεις (σαν minimum). Ο χρήστης δίνει το μέγεθος του πίνακα? Aν είναι ετσι πρέπει να δεσμέυσεις μνήμη με pointer. 2 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Ultron Δημοσ. 30 Απριλίου 2013 Μέλος Share Δημοσ. 30 Απριλίου 2013 int bbsoptimized(int d[], int vbbs) { int i = 0, j = 0, steps = 0, temp=0, swapped = 1; for (i = 0; i < (vbbs - 1); i++) { swapped = 1; steps = steps + 1; for (j = 0; j < vbbs - i - 1; j++) { steps = steps + 1; if (d[j] > d[j + 1]) { int temp = d[j + 1]; d[j + 1] = d[j]; d[j] = temp; swapped = 0; } } if (swapped == 1) { break; } } return steps; } κώδικας της BBS ^ Καταχώρηση printf("Dwse arithmo thesewn tou pinaka:"); fflush(stdout); scanf("%d", &n); και μετα απο αυτα ξερω γω καλω την function vb=n; for (i = 0; i < vb; i++) { //initialize pinaka kanontas oles tis metablhtes tou pinaka 0. a[i] = 0; d[i] = 0; } srand(time(NULL)); for (i = 0; i < vb; i++) { a[i] = -rand() % 1000 + rand() % 1000; d[i] = a[i]; } Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
albNik Δημοσ. 30 Απριλίου 2013 Share Δημοσ. 30 Απριλίου 2013 Ο χρήστης δίνει το μέγεθος του a[] και d[]? Aν είναι ετσι πρέπει να δεσμέυσεις μνήμη με pointer. int *a; scanf("%d",&n); a=(int *) malloc(n*sizeof(int)); 1 Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Ultron Δημοσ. 30 Απριλίου 2013 Μέλος Share Δημοσ. 30 Απριλίου 2013 Ο χρήστης δίνει το μέγεθος του a[] και d[]? Aν είναι ετσι πρέπει να δεσμέυσεις μνήμη με pointer. int *a; scanf("%d",&n); a=(int *) malloc(n*sizeof(int)); Εισαι Θεός Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
nilosgr Δημοσ. 30 Απριλίου 2013 Share Δημοσ. 30 Απριλίου 2013 Ναι αλλά πριν κλείσει το πρόγραμμα σου πρέπει να απελευθερώνεις τη μνήμη του a. Βέβαια υπάρχει και το: int n; scanf("%d",&n); int a[n];Προφανώς και πρέπει να ελέγχεις την τιμή του n για να είναι θετική Συνδέστε για να σχολιάσετε Κοινοποίηση σε άλλες σελίδες άλλες επιλογές
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα