ColdFusion Δημοσ. 10 Απριλίου 2008 Δημοσ. 10 Απριλίου 2008 Έχω δημιουργήσει το παρακάτω πρόγραμμα σε c. >#include<stdio.h> #include<stdlib.h> #define N 3 main() { int array[N][N],temp,i,j; // make the matrix printf("Please,give the elements of the matrix:(%d x %d):\n",N,N); for (i=0;i<N;i++) for(j=0;j<N;j++) scanf("%d",&(array[i][j])); // copy 1st and last line of matrix for (i=0;i<N;i++) { array[0][i]=temp; array[0][i]=array[N-1][i]; array[N-1][i]=temp; } //print matrix// printf("NEW MATRIX\n"); for (i=0;i<N;i++) { for(j=0;j<N;j++) printf("%d\t",array[i][j]); printf("\n"); } system("pause"); } Θέλω να να αντιγράψω την πρώτη σειρά του πίνακα στην τελευταία και το αντίστροφο. Τι κάνω λάθος και την τελευταία γραμμή μου βγάζει αντί για νούμερα διευθύνσεις??
djapal Δημοσ. 10 Απριλίου 2008 Δημοσ. 10 Απριλίου 2008 array[0]=temp; temp = array[0] και όχι array[0] = temp Το temp πρέπει να φορτώσει την τιμή της πρώτης γραμμής και όχι η πρώτη γραμμή να πάρει την τιμή του temp που στο πρώτο τρέξιμο είναι undefined.
StayCoolll Δημοσ. 15 Απριλίου 2008 Δημοσ. 15 Απριλίου 2008 swsth apanthsh...prosoxh stis apodoseis timwn...
bilco Δημοσ. 17 Απριλίου 2008 Δημοσ. 17 Απριλίου 2008 καλή λύση, αλλά όχι η βέλτιστη... Φαντάζομαι ότι εννοείς να κάνει τράμπα τις διευθύνσεις των γραμμών. Αν όμως υπάρχουν σε άλλα σημεία του προγράμματος αναφορές σε θέσεις του πίνακα, θα μπλέξει άσχημα.
ColdFusion Δημοσ. 17 Απριλίου 2008 Μέλος Δημοσ. 17 Απριλίου 2008 Φαντάζομαι ότι εννοείς να κάνει τράμπα τις διευθύνσεις των γραμμών. Αν όμως υπάρχουν σε άλλα σημεία του προγράμματος αναφορές σε θέσεις του πίνακα, θα μπλέξει άσχημα. Να χρησιμοποιήσω δείκτες δηλαδή?
bilco Δημοσ. 18 Απριλίου 2008 Δημοσ. 18 Απριλίου 2008 Να χρησιμοποιήσω δείκτες δηλαδή? Ναι, κάπως έτσι > int* p = arr[0]; arr[0] = arr[N-1]; arr[N-1] = p;
bokarinho Δημοσ. 18 Απριλίου 2008 Δημοσ. 18 Απριλίου 2008 Ναι, κάπως έτσι > int* p = arr[0]; arr[0] = arr[N-1]; arr[N-1] = p; Έχεις κάνει κάποιο σοβαρό λάθος εδώ Bilco και πραγματικά δεν το περίμενα από εσένα. ;)
bilco Δημοσ. 18 Απριλίου 2008 Δημοσ. 18 Απριλίου 2008 Έχεις κάνει κάποιο σοβαρό λάθος εδώ Bilco και πραγματικά δεν το περίμενα από εσένα. ;) yep σωστός boka μου ξέφυγε ένα αστεράκι ή όχι; confused περίμενε να το δώ.
bokarinho Δημοσ. 18 Απριλίου 2008 Δημοσ. 18 Απριλίου 2008 yep σωστός boka μου ξέφυγε ένα αστεράκι ή όχι; confused περίμενε να το δώ. > int *p = nArray; int *q = &nArray[N-1]; int temp; temp = *p; *p = *q; *q = temp; ;)
bokarinho Δημοσ. 18 Απριλίου 2008 Δημοσ. 18 Απριλίου 2008 Και το αστεράκι να βάλεις πάλι δεν είναι σωστό. Κάτσε, swap δεν θέλεις να κάνεις;
bokarinho Δημοσ. 18 Απριλίου 2008 Δημοσ. 18 Απριλίου 2008 Το p είνα δείκτης αγαπητέ Bilco, αν πεις ότι Α[ν] = p τότε το Α[ν] θα πάρει την τιμή της διεύθυνσης που βρίσκεται ο δείκτης όχι την τιμή που δείχνει. Αλλά αν θέλεις να κάνεις ανταλλαγή σίγουρα και εσύ ξέρεις ότι δεν αρκεί αυτό που έγραψες. (Μέχρι και οι Guru έχουν δικαίωμα στο λάθος, respect.-)
bilco Δημοσ. 18 Απριλίου 2008 Δημοσ. 18 Απριλίου 2008 Το p είνα δείκτης αγαπητέ Bilco, αν πεις ότι Α[ν] = p τότε το Α[ν] θα πάρει την τιμή της διεύθυνσης που βρίσκεται ο δείκτης όχι την τιμή που δείχνει. Αλλά αν θέλεις να κάνεις ανταλλαγή σίγουρα και εσύ ξέρεις ότι δεν αρκεί αυτό που έγραψες. (Μέχρι και οι Guru έχουν δικαίωμα στο λάθος, respect.-) Μα δεν θέλουμε την τιμή που δείχνει. Τη διεύθυνση θέλουμε, δηλαδή όλη τη γραμμή-πίνακα Α[0], και swap με την γραμμή Α[Ν-1] για να το κάνουμε με τη μια. PS Τι guru μωρέ, ούτε διάκος δεν είμαι
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.