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

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

Δημοσ.

Καλησπερα,εχω ενα περιεργο προβληματακι!Ρωταω τον χρηστη να καθορισει εναν πινακα (δινει 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));
  • Like 1
Δημοσ.

 

Ο χρήστης δίνει το μέγεθος του 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 για να είναι θετική

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

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

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

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

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

Σύνδεση

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

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