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

Πρόβλημα με καθορισμό θέσεων σε πίνακα.


Ultron

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

Καλησπερα,εχω ενα περιεργο προβληματακι!Ρωταω τον χρηστη να καθορισει εναν πινακα (δινει int) κλπ κλπ και μετα κανει bubblesort kai selection sort. Απο το 1-14  καταχωρει τον πινακα κομπλε βγαζει αποτελεσματα κλπ κλπ αλλα μολις βαλω 15 και πανω τρωω ακυρο και κλεινει το προγραμμα ξερει κανεις τι παιζει?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Συμφωνα με τις μαντικές μου ικανότητες ο πίνακάς σου είναι <15 θέσεων.

Π.χ. αν τον δηλώσεις int[Ν]  για Ν<8 μπορεί να κρατάει 8 θέσεις (σαν minimum).

 

Ο χρήστης δίνει το μέγεθος του πίνακα?

Aν είναι ετσι πρέπει να δεσμέυσεις μνήμη με pointer.

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες


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];
			}
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

 

Ο χρήστης δίνει το μέγεθος του a[] και d[]?

 

Aν είναι ετσι πρέπει να δεσμέυσεις μνήμη με pointer.

int *a;
scanf("%d",&n);
a=(int *) malloc(n*sizeof(int));

 

Εισαι Θεός  :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ναι αλλά πριν κλείσει το πρόγραμμα σου πρέπει να απελευθερώνεις τη μνήμη του a.

 

Βέβαια υπάρχει και το:

int n;
scanf("%d",&n);
int a[n];
Προφανώς και πρέπει να ελέγχεις την τιμή του n για να είναι θετική
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

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