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

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

Ερώτηση

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

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

7 απαντήσεις σε αυτή την ερώτηση

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

  • 0

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

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

 

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

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

  • Like 2

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

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];
			}

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

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

 

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

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

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

 

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

 

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

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

 

Εισαι Θεός  :)

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

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

 

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

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

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

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

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

Χρήσιμες πληροφορίες

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.