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

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

Δημοσ.

Γιατι το Β[5] υπάρχει ενώ το Α[5] οχι.. Αν παρατηρησεις Α -> 0 εως 4 και Β -> 0 εως 5 κελια.. Σε κάθε προηγουμενη συγκριση τα περιεχομενα ειναι ισα.

 

Λάθος. Δεν ειναι αυτό. Ο έλεγχος επιστρέφει στην main οταν η συνθηκη ικανοποιείται εφοσον A[0] == B[0].

κανε το i =0 ειναι το i μεγαλυτερο απο τον πινακα Β? αυξησε το i κατα 1

 

Όχι. 

 

Ειναι το i μεγαλύτερο απο το i-στοιχείο του πίνακα Β? αν ναι μπες στο σώμα του loop εκτέλεσε οτι υπάρχει εκει και μετά αύξησε το i κατα 1. 

  • Like 1
  • Απαντ. 35
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.

Λάθος. Δεν ειναι αυτό. Ο έλεγχος επιστρέφει στην main οταν η συνθηκη ικανοποιείται εφοσον A[0] == B[0].

 

 

Ναι εχεις δικιο. Μετα ειδα οτι υπαρχει απλα το return. Ουσιαστικα κανει μονο 1 επαναληψη. Απλα αν συνεχιζε τις επαναληψεις θα ειχε και αυτο το προβλημα.

  • Like 1
Δημοσ.

 

για να βρω το πληθος θα βαλω τιμες σε καθε πινακα ?

int Mystrlen(int A[],int B[])
{
 
  int i;
 
  for(i=0;i<B;i++)
  {
 
     if(A==B)
     {
 
       return 1;   
  
 
     }
  else if(B>A)
  {
 
 
     return 0;
 
  }
 
 
  }
 
 
}
int main ()
{
 
   int A[]={1,2,3,4,5};
   int B[]={1,2,3,4,8,};
 
   printf("%d\n",Mystrlen(A, B));
 
 
 εαν αλλαξω το πρωτο στοιχειο του πινακα επιστρεφει 0
ως προς τα περιεχομενα τους
 
 return 0;
}

 

 

Nαι αν αλλάξεις το 1ο στοιχειο του πίνακα Β και το κάνεις πχ 15 τοτε επειδη ειναι μεγαλυτερο απο το αντιστοιχο του Α θα επιστρέψει 0 αν ειναι μικροτερο θα επιστρέψει 1 αν πιο κάτω βρει κάποια ισα στοιχεια. Πχ

int A[5]={10,20,30,40,50};
int B[6]={2,20,30,40,50,60};  // Με αυτη την αρχικοποιηση θα επιστρέψει 1 εφοσον 20 == 20. 

Ο κωδικας δεν έχει θέμα οτι του λές να κάνει θα κάνει το θεμα ειναι οπως ειπαν και τα παιδια πριν τι θες να κάνεις εσύ. 

Ναι εχεις δικιο. Μετα ειδα οτι υπαρχει απλα το return. Ουσιαστικα κανει μονο 1 επαναληψη. Απλα αν συνεχιζε τις επαναληψεις θα ειχε και αυτο το προβλημα.

 

Ναι ισχύει. Βασικά ετσι οπως τα έχει αρχικοποιήσει μετά ο ένας πινακας βγαίνει ορίων(overflow) και το αποτελεσμα ειναι undefined αν θυμαμαι καλά. Έχω να πιάσω C κανα μήνα :P

  • Like 1
Δημοσ.

αν αλλαξω ομως το 2 στοιχειο του πινακα Β βγαζει οτι ειναι ισα μπορω να το φτιαξω οταν αλλαζω τα στοιχεια του πινακα   Β να μου βγαζει οτι δεν ειναι ισα γιατι μπορει να ειναι αλλου  ο μεγιστος αριθμος 

Δημοσ.

αν αλλαξω ομως το 2 στοιχειο του πινακα Β βγαζει οτι ειναι ισα μπορω να το φτιαξω οταν αλλαζω τα στοιχεια του πινακα   Β να μου βγαζει οτι δεν ειναι ισα γιατι μπορει να ειναι αλλου  ο μεγιστος αριθμος 

 

Άμα έχεις αφησει τα πρώτα στοιχεια των 2 πινάκων οπως τα έχεις εδω τι θες να βγάλει? αυτα συγκρινει διαπιστώνει οτι ειναι ισα και σου επιστρέφει το 1. Τα υπολοιπα στοιχεια δεν τα ελεγχει κάν γιατι δεν ειναι πια μέσα στην συνάρτηση το προγραμμα ο έλεγχος μετα το return έχει επιστραφεί στην συνάρτηση που κάλεσε(η main) την συναρτηση που θες να κάνει την συγκριση.

Δημοσ.
int Mystrlen(int A[],int B[])

{

 

  int i;

 

  for(i=0;i<=B;i++)

  {

 

     if(A==B)

     {

 

       return 1;   

  

 

     }

  else if(B>A)

  {

 

 

     return 0;

 

  }

 

 

  }

 

 

}

int main ()

{

 

   int A[]={1,2,3,4,5};                    τωρα θα μου επιστρεψει ενα 1 γιατι ειναι ισοι οι πινακες  αν παω ομως στον πινακα Β και το κανω το 2 

   int B[]={1,2,3,4,5,};                   12 θα μου βγαλει 1 γιατι δεν συνεχιζεται το loop μπορω να το φτιαξω  ετσι ωστε οποια στοιχεια του                                                           πινακα Β και να αλλαξω ειτε ειναι το 2 η 3 η 4 στοιχειο του να μου επιστρεφει 0?

                                    

  

 

   printf("%d\n",Mystrlen(A,B));

 

 

 

 

 return 0;

}

Δημοσ.

Δεν θα βγάλει 1. 0 θα βγάλει για τους λογους που σου εξηγησα και πριν. Κοιταξε ξανά τα προηγουμενα μηνύματα και τρέξε τον κώδικα με τις τροποποιήσεις που του κάνεις κάθε φορά να δεις τι βγάζει. Το 1 που το βρηκες?

 

Τωρα αν θές να φτιάξεις μια συνάρτηση που συγκρινει τα στοιχεια ενος πίνακα σκέψου στην αρχη ποιες περιπτώσεις έχεις και αναλογα βάλε τα if. Πχ οι περιπτωσεις ειναι 3 A > B , A < B και A == B.

Δημοσ.


#include <stdio.h>
#define SIZE 5
 
void arr_comp(int arrA[],int arrB[])
{
    int i=0;
 
    for(;i<SIZE;i++){
 
        if( arrA[i] > arrB[i])
            printf("In position %d : %d is higher from %d\n" , i , arrA[i] , arrB[i]);
 
        else if ( arrA[i] < arrB[i] )
            printf("In position %d : %d is lower from %d\n" , i , arrA[i] , arrB[i]);
 
        else
            printf("In position %d : %d with %d are equals\n" , i , arrA[i] , arrB[i]);
    }
 
}
 
int  main(void)
{
 
       int arrA[SIZE]={1,2,3,4,5};
       int arrB[SIZE]={1,4,5,4,5};
       arr_comp(arrA,arrB);
 
  return 0;
}


 

 

- Το mystrel ειναι άκυρο ονομα για μια συνάρτηση που συγκρινει τα στοιχεια ακεραιων πινάκων. Τα stdlib και string.h δεν τα χρειάζεσαι. Το stdio.h μονο γιατι χρησιμοποιείς την printf μεσα στο προγραμμα. Το έφτιαξα προχειρα για να δεις πιο μετα ισως σκεφτώ να αλλαξω τιποτα για να μην χρησιμοποιώ τοσα if. 

 

- Προσθεσα το directive με το SIZE οποτε αν θελήσεις να αλλάξεις το μέγεθος των πινάκων αρκει να το κάνεις σε ενα σημειο και μετα ο προεπεξεργαστής θα αντικαταστήσει σε ολα τα σημεια που εμφανιζεται το SIZE. 

 

- Άν θες να επιστρέψεις 2 λογικές τιμές για TRUE ή FALSE αντιστοιχα απο την συναρτηση ειναι καλυτερα να δηλώσεις τον επιστρεφομενο τύπο bol γιατι με το int δεν ειναι ευδιάκριτο άσχετα αν το 0 ή το 1 μπορούν να επιστραφούν σαν int.

  • Like 1
Δημοσ.

Δεν θα βγάλει 1. 0 θα βγάλει για τους λογους που σου εξηγησα και πριν. Κοιταξε ξανά τα προηγουμενα μηνύματα και τρέξε τον κώδικα με τις τροποποιήσεις που του κάνεις κάθε φορά να δεις τι βγάζει. Το 1 που το βρηκες?

 

Τωρα αν θές να φτιάξεις μια συνάρτηση που συγκρινει τα στοιχεια ενος πίνακα σκέψου στην αρχη ποιες περιπτώσεις έχεις και αναλογα βάλε τα if. Πχ οι περιπτωσεις ειναι 3 A > B , A < B και A == B.

για την ακρίβεια ο κώδικας που έχει συγκρίνει μόνο το 1ο στοιχείο των 2 πινάκων και είναι ίδιο οπότε σωστά επιστρέφει 1, είτε είναι ίδια τα υπόλοιπα είτε όχι... 

 

@programmer δες πως θα φτιάξεις έναν αλγόριθμο με αυτό που έχεις στο μυαλό σου και μετά γράψε το σε κώδικα...

Δημοσ.

παιδια ευχαριστω το programmer μου αρεσει σαν nick ετσι δεν παει να πει οτι ειμαι και ο καλυτερος ...απλα τωρα μαθαινω προγραμματισμο και μου αρεσει και το επελεξα το nick :)


Μια ασχετη ερωτηση ξερεται πως μπορω να βρω ασκησεις σε γλωσσα προγραμματισμου java σε μορφη pdf? η καποιο ελληνικο βιβλιο και αυτο σε μορφη pdf αλλα στα ελληνικα!

Δημοσ.

για την ακρίβεια ο κώδικας που έχει συγκρίνει μόνο το 1ο στοιχείο των 2 πινάκων και είναι ίδιο οπότε σωστά επιστρέφει 1, είτε είναι ίδια τα υπόλοιπα είτε όχι... 

 

@programmer δες πως θα φτιάξεις έναν αλγόριθμο με αυτό που έχεις στο μυαλό σου και μετά γράψε το σε κώδικα...

 

Ναι αλλα ειπε οτι αμα πάει και κάνει το 1 στον πίνακα Β 2 τοτε δεν δινει 1 αλλα 0. Δες τι γραφει διπλα απο τον κωδικα. 

Δημοσ.

 

#include <stdio.h>
#define SIZE 5
 
void arr_comp(int arrA[],int arrB[])
{
    int i=0;
 
    for(;i<SIZE;i++){
 
        if( arrA[i] > arrB[i])
            printf("In position %d : %d is higher from %d\n" , i , arrA[i] , arrB[i]);
 
        else if ( arrA[i] < arrB[i] )
            printf("In position %d : %d is lower from %d\n" , i , arrA[i] , arrB[i]);
 
        else
            printf("In position %d : %d with %d are equals\n" , i , arrA[i] , arrB[i]);
    }
 
}
 
int  main(void)
{
 
       int arrA[SIZE]={1,2,3,4,5};
       int arrB[SIZE]={1,4,5,4,5};
       arr_comp(arrA,arrB);
 
  return 0;
}
 
 
- Το mystrel ειναι άκυρο ονομα για μια συνάρτηση που συγκρινει τα στοιχεια ακεραιων πινάκων. Τα stdlib και string.h δεν τα χρειάζεσαι. Το stdio.h μονο γιατι χρησιμοποιείς την printf μεσα στο προγραμμα. Το έφτιαξα προχειρα για να δεις πιο μετα ισως σκεφτώ να αλλαξω τιποτα για να μην χρησιμοποιώ τοσα if. 
 
- Προσθεσα το directive με το SIZE οποτε αν θελήσεις να αλλάξεις το μέγεθος των πινάκων αρκει να το κάνεις σε ενα σημειο και μετα ο προεπεξεργαστής θα αντικαταστήσει σε ολα τα σημεια που εμφανιζεται το SIZE. 
 
- Άν θες να επιστρέψεις 2 λογικές τιμές για TRUE ή FALSE αντιστοιχα απο την συναρτηση ειναι καλυτερα να δηλώσεις τον επιστρεφομενο τύπο bol γιατι με το int δεν ειναι ευδιάκριτο άσχετα αν το 0 ή το 1 μπορούν να επιστραφούν σαν int.

 

στην συναρτηση mystrlel βαζεις οτι ονομα θες μην μου λες ακυρο!!!! 

ααα στο φορ σου εχεις λαθος 

ααα στο φορ σου εχεις λαθος 

for(;i<SIZE;i++)

for(i=0;i<SIZE;i++ // μην βαζεις κεφαλαια μπορεις βαλεις  καλυτερα Define N 5;

Δημοσ.

στην συναρτηση mystrlel βαζεις οτι ονομα θες μην μου λες ακυρο!!!! 

ααα στο φορ σου εχεις λαθος 

ααα στο φορ σου εχεις λαθος 

for(;i<SIZE;i++)

for(i=0;i<SIZE;i++ // μην βαζεις κεφαλαια μπορεις βαλεις  καλυτερα Define N 5;

Ήμαρτον πια programmer

 

1) μάθε να δέχεσαι την κριτική.... 

 

2) Βάζουμε ονόματα συναρτήσεων που έχουν σχέση με αυτά που κάνει η εκάστοτε συνάρτηση (κατα σύμβαση) και ναι προφανώς το mystrel είναι άκυρο. Σκέψου μόνο πόσο αργήσαμε να καταλάβουμε τι θέλεις να κάνεις επειδή απλά στην συνάρτηση σου είχες ότι να ναι ονομα. Θα ήταν πολύ καλύτερα ακόμα και να είχες ένα μακρυνάρι όνομα compare_elements_of_two_arrays().

 

3) Μάθε τι κάνουν οι εντολές πριν κάνεις κριτική σε κάποιον. Προφανώς και δεν έχει λάθος, το οποίο θα το έβλεπες πολύ εύκολα αν τα έβαζες σε ένα compiler και το τρεχες ή ακόμα αν ήξερες την σύνταξη της εντολής for :  for(INITIALIZATION;CONDITION;ACTION)

 

4) Σε σταθερές μεταβλητές βάζουμε κεφαλαία για να τις ξεχωρίζουμε από τις υπόλοιπες, (κατα σύμβαση)

 

5) Δεν προγραμματίζουμε ΠΟΤΕ τυχαία, αν πιστεύεις οτι κάτι είναι καλύτερο από κάτι άλλο, πρέπει να το αιτιολογείς. 

 

Σεβάσου τον συμφορουμίτη που έκανε τον κόπο να σου απαντήσει για να σε βοηθήσει και εσύ τον κάνεις κριτική επειδή ΤΙ?

  • Like 3
Δημοσ.

Ήμαρτον πια programmer

 

1) μάθε να δέχεσαι την κριτική.... 

 

2) Βάζουμε ονόματα συναρτήσεων που έχουν σχέση με αυτά που κάνει η εκάστοτε συνάρτηση (κατα σύμβαση) και ναι προφανώς το mystrel είναι άκυρο. Σκέψου μόνο πόσο αργήσαμε να καταλάβουμε τι θέλεις να κάνεις επειδή απλά στην συνάρτηση σου είχες ότι να ναι ονομα. Θα ήταν πολύ καλύτερα ακόμα και να είχες ένα μακρυνάρι όνομα compare_elements_of_two_arrays().

 

3) Μάθε τι κάνουν οι εντολές πριν κάνεις κριτική σε κάποιον. Προφανώς και δεν έχει λάθος, το οποίο θα το έβλεπες πολύ εύκολα αν τα έβαζες σε ένα compiler και το τρεχες ή ακόμα αν ήξερες την σύνταξη της εντολής for :  for(INITIALIZATION;CONDITION;ACTION)

 

4) Σε σταθερές μεταβλητές βάζουμε κεφαλαία για να τις ξεχωρίζουμε από τις υπόλοιπες, (κατα σύμβαση)

 

5) Δεν προγραμματίζουμε ΠΟΤΕ τυχαία, αν πιστεύεις οτι κάτι είναι καλύτερο από κάτι άλλο, πρέπει να το αιτιολογείς. 

 

Σεβάσου τον συμφορουμίτη που έκανε τον κόπο να σου απαντήσει για να σε βοηθήσει και εσύ τον κάνεις κριτική επειδή ΤΙ?

φιλε ηρεμισε λιγο και μην αρπαζεσαι ....ο καθενας προγραμματιζει οπως ξερει  ειδικα οταν εισαι νεος και εχεις πολλα κενα στον προγραμματισμο την κριτικη μια χαρα την δεχομαι εσυ αρπαζεσαι χωρις λογο και αρχισες να λες 100 πραγματα χωρις καμια ουσια οποιος θελει απανταει στο θεμα μου αλλα πανω στο θεμα μου οχι να λεει ασυναρτισιες τα λαθη θελω να τα βρισκω μονος μου το να μου τα πει καποιος δεν μπροκειται να μαθω προγραμματισμο νομιζεται οτι βοηθατε αλλα δυστυχως κανεται το αντιθετο

φιλε ηρεμισε λιγο και μην αρπαζεσαι ....ο καθενας προγραμματιζει οπως ξερει  ειδικα οταν εισαι νεος και εχεις πολλα κενα στον προγραμματισμο την κριτικη μια χαρα την δεχομαι εσυ αρπαζεσαι χωρις λογο και αρχισες να λες 100 πραγματα χωρις καμια ουσια οποιος θελει απανταει στο θεμα μου αλλα πανω στο θεμα μου οχι να λεει ασυναρτισιες τα λαθη θελω να τα βρισκω μονος μου το να μου τα πει καποιος δεν μπροκειται να μαθω προγραμματισμο νομιζεται οτι βοηθατε αλλα δυστυχως κανεται το αντιθετο και εκτος αυτου να μαθεται και εσεις να δεχεσται κριτικη δεν ειναι κανενας τελειος γιατι αμα ηταν καποιος τελειος στον προγραμματισμο πολυ απλα δεν θα ηταν εδω σε αυτο το forum ξυπνα  ...

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα

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