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

Βοήθεια με πρόγραμμα σε c


ColdFusion

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

Δημοσ.

Έχω δημιουργήσει το παρακάτω πρόγραμμα σε 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");
     }
     

Θέλω να να αντιγράψω την πρώτη σειρά του πίνακα στην τελευταία και το αντίστροφο. Τι κάνω λάθος και την τελευταία γραμμή μου βγάζει αντί για νούμερα διευθύνσεις??

Δημοσ.

array[0]=temp;

temp = array[0] και όχι array[0] = temp

 

Το temp πρέπει να φορτώσει την τιμή της πρώτης γραμμής και όχι η πρώτη γραμμή να πάρει την τιμή του temp που στο πρώτο τρέξιμο είναι undefined.

Δημοσ.
καλή λύση, αλλά όχι η βέλτιστη...

 

Φαντάζομαι ότι εννοείς να κάνει τράμπα τις διευθύνσεις των γραμμών. Αν όμως υπάρχουν σε άλλα σημεία του προγράμματος αναφορές σε θέσεις του πίνακα, θα μπλέξει άσχημα.

Δημοσ.
Φαντάζομαι ότι εννοείς να κάνει τράμπα τις διευθύνσεις των γραμμών. Αν όμως υπάρχουν σε άλλα σημεία του προγράμματος αναφορές σε θέσεις του πίνακα, θα μπλέξει άσχημα.

 

Να χρησιμοποιήσω δείκτες δηλαδή?

Δημοσ.
Ναι, κάπως έτσι

>
int* p = arr[0];
arr[0] = arr[N-1];
arr[N-1] = p;

 

Έχεις κάνει κάποιο σοβαρό λάθος εδώ Bilco και πραγματικά δεν το περίμενα από εσένα.

 

;);)

Δημοσ.
Έχεις κάνει κάποιο σοβαρό λάθος εδώ Bilco και πραγματικά δεν το περίμενα από εσένα.

 

;);)

 

yep σωστός boka μου ξέφυγε ένα αστεράκι ;) ή όχι; confused περίμενε να το δώ.

Δημοσ.
yep σωστός boka μου ξέφυγε ένα αστεράκι ;) ή όχι; confused περίμενε να το δώ.

>
int *p = nArray;
int *q = &nArray[N-1];
int temp;
temp = *p;
*p = *q;
*q = temp;

 

;);)

Δημοσ.

Το p είνα δείκτης αγαπητέ Bilco, αν πεις ότι Α[ν] = p τότε το Α[ν] θα πάρει την τιμή της διεύθυνσης που βρίσκεται ο δείκτης όχι την τιμή που δείχνει. Αλλά αν θέλεις να κάνεις ανταλλαγή σίγουρα και εσύ ξέρεις ότι δεν αρκεί αυτό που έγραψες.

 

(Μέχρι και οι Guru έχουν δικαίωμα στο λάθος, respect.-)

 

:-)

Δημοσ.
Το p είνα δείκτης αγαπητέ Bilco, αν πεις ότι Α[ν] = p τότε το Α[ν] θα πάρει την τιμή της διεύθυνσης που βρίσκεται ο δείκτης όχι την τιμή που δείχνει. Αλλά αν θέλεις να κάνεις ανταλλαγή σίγουρα και εσύ ξέρεις ότι δεν αρκεί αυτό που έγραψες.

 

(Μέχρι και οι Guru έχουν δικαίωμα στο λάθος, respect.-)

 

:-)

 

Μα δεν θέλουμε την τιμή που δείχνει. Τη διεύθυνση θέλουμε, δηλαδή όλη τη γραμμή-πίνακα Α[0], και swap με την γραμμή Α[Ν-1] για να το κάνουμε με τη μια.

 

PS Τι guru μωρέ, ούτε διάκος δεν είμαι :)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...