ReputGlory1 Δημοσ. 6 Φεβρουαρίου 2014 Δημοσ. 6 Φεβρουαρίου 2014 (επεξεργασμένο) Ο κώδικας είναι αυτός: #include <iostream> #include <algorithm> #include <cmath> #include <iomanip> using namespace std; bool fthinousa(float n1, float n2)//sunarthsh gia na diatassei { //ta stoixeia tou pinaka kata return n1>n2; //fthinousa seira } bool au3ousa(float n1, float n2)//sunarthsh gia na diatassei { //ta stoixeia tou pinaka kata return n1<n2; //auksousa seira } int main() { int n, k, a; cin >> n >> k; float b[n], result1 = 0.f;// arxikopoioume to apotelesma sto 0 kai orizoume ton pinaka float array2[(n-k)];//orizoume ton deutero pinaka pou tha valoume ta stoixeia meta thn auksousa seira float array3[(n-(2*k))]; //orizoume ton trito pinaka pou tha valoume ta telika stoixeia pou tha vroume to meso oro for (int i=0; i<n; i++) { cin >> b;//vazoume ston arxiko pinaka ta stoixeia pou mas zhtountai } sort(b, b + n, au3ousa);//orizoume ta stoixeia tou pinaka kata auksousa seira for(int i=0; i<n-k; i++) { array2=b[i+k];//to prwto stoixeio tou neou mou pinaka einai apo to k-osto+1 stoixeio tou allou afou ta k prwta ta diwxnw } sort(array2, array2 + (n-k), fthinousa);//orizoume ta stoixeia tou pinaka kata fthinousa seira for(int i=0; i<n-k; i++) { array3=array2[i+k];//oti to prwto stoixeio tou neou mou pinaka einai apo to k-osto+1 stoixeio tou allou afou ta k prwta ta diwxnw } for(a=0; a < (n-(2*k)); a++) { result1 += array3[a];//prosthetoume ola ta stoixeia tou pinaka gia na vgaloume meta to meso oro } // //B' SKELOS // float array4[n-(2*k)];//orizoume ton 4o pinaka for(int i=0; i<(n-(2*k)); i++) { array4=array2[i+k];//oti to prwto stoixeio tou neou mou pinaka einai apo to k-osto+1 stoixeio tou allou afou ta k prwta ta diwxnw sort(array4, array4, au3ousa);//orizoume ta stoixeia tou pinaka kata au3ousa seira } array4[0]=array4[]; for(int i=0; i<(n-(2*k)); i++) { cout << endl << array4; } return 0; } δεν μου γίνεται σωστά η μεταφορά ή έξοδος στην οθόνη των τιμών του array4 που θέλω να είναι ίδιες με του array3 για να το χρησιμοποιήσω αλλού πιο μετά. Είμαι σίγουρος πως το λάθος είναι στον κοκκινισμένο κώδικα. Επεξ/σία 6 Φεβρουαρίου 2014 από ReputGlory1
albNik Δημοσ. 6 Φεβρουαρίου 2014 Δημοσ. 6 Φεβρουαρίου 2014 float array2[(n-k)]; Το μεγεθος του πινακα (b, array2, array3) πρεπει να ειναι γνωστό κατα το compile. Τα υπολοιπα δεν τα ειδα.
ReputGlory1 Δημοσ. 6 Φεβρουαρίου 2014 Μέλος Δημοσ. 6 Φεβρουαρίου 2014 float array2[(n-k)]; Το μεγεθος του πινακα (b, array2, array3) πρεπει να ειναι γνωστό κατα το compile. Τα υπολοιπα δεν τα ειδα. τα δίνει ο χρήστης
albNik Δημοσ. 6 Φεβρουαρίου 2014 Δημοσ. 6 Φεβρουαρίου 2014 Για μικρα n,k μπορει να παίζει, αλλα ο compiler δεν εχει αποθηκεύσει το χώρο για τους πινακες (αφου δεν γνωριζει ποσο χρειαζεται). for(int i=0;i<n;i++) { array4[i]=array3[n-(2*k)]; } Εδω βαζεις σε ολο το array4 τον ιδιο αριθμό : array3[n-(2*k)]
ReputGlory1 Δημοσ. 6 Φεβρουαρίου 2014 Μέλος Δημοσ. 6 Φεβρουαρίου 2014 εγώ θέλω απλά από εκει που λέει B' SKELOS και κάτω να αντιγράψω όλες τις τιμές του array3 sto array4 αλλά θέλω αφού το array3 έχει n-(2*k) το 4 να έχει n με τις 2*κ θέσεις να είναι 0. Δλδ οι θέσεις που δεν υπάρχουν στην array3 να εμφανίζονται σαν 0 στην array4
albNik Δημοσ. 6 Φεβρουαρίου 2014 Δημοσ. 6 Φεβρουαρίου 2014 εγώ θέλω απλά από εκει που λέει B' SKELOS και κάτω να αντιγράψω όλες τις τιμές του array3 sto array4 αλλά θέλω αφού το array3 έχει n-(2*k) το 4 να έχει n με τις 2*κ θέσεις να είναι 0. Δλδ οι θέσεις που δεν υπάρχουν στην array3 να εμφανίζονται σαν 0 στην array4 Δοκιμασε array4[i]=array3[n-(2*k)+i];
defacer Δημοσ. 6 Φεβρουαρίου 2014 Δημοσ. 6 Φεβρουαρίου 2014 Offtopic, αλλά αν αντικαταστήσεις και τη cin με scanf δε θα έχει μείνει απολύτως τίποτα από C++ σ' αυτό τον κώδικα. Τουλάχιστον έτσι για τα προσχήματα αντί να χρησιμοποιείς features που υπάρχουν μόνο στη C (αυτό που λέει ο albnik με τους πίνακες) βάλε ένα std::vector ή έστω ακόμα κι ένα new για τον πίνακα αντί να "θέλεις απλά" να φύγει το κακό απ' τα μάτια σου. Αυτό πάντως που θες γίνεται με μια γραμμή αν σ' ενδιαφέρει να το ψάξεις: std::fill(std::copy(array3, array3 + n - 2 * k, array4), array4 + n, 0);
ReputGlory1 Δημοσ. 6 Φεβρουαρίου 2014 Μέλος Δημοσ. 6 Φεβρουαρίου 2014 το έφτιαξα το μόνο που απομένει να βρω είναι πώς κάνω πχ την τιμη του array4[0] πολλαπλασιασμό με το m φορές πχ
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα