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

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

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

θελω να μου πειτε αν χρειαζεται κατι αλλο η αν ειναι οκ ΔΕΝ θελω να μου πειτε την λυση

 

#include <stdio.h>

#include <stdlib.h>

 

int main (void)

{

 int i,q,temp;

 int a[10]={1,2,3,4,5,6,7,8,9,10};

 int N=10;

 

 for(i=1;i<N-i;i++){

   for(q=0;q<N;q++){

 

      if(a[q]>a[q+1])

      {

     temp=a[q];

     a[q]=a[q+1];

     a[q+1]=temp;

 

    }

    

    

  }

 

}

    

     if(a[q]>a[q+1])

     printf("o pinakas einai taksinomhmenos\n");

     else 

     printf("o pinakas den einai taksinomhmenos");

    

 

return 0;

system("pause");

}
Δημοσ.

θελω να μου πειτε αν χρειαζεται κατι αλλο η αν ειναι οκ ΔΕΝ θελω να μου πειτε την λυση

 

   for(q=0;q<N;q++){

    }

    

     if(a[q]>a[q+1])

Στο if τι τιμή έχει το q ?

Δημοσ.

Μπορεις να το δεις και μονος σου. Δεν ειναι δυσκολο. Αν το προγραμμα ειναι σωστο τοτε θα ταξινομει κατα bubble sort δηλαδη θα αντιστρέψει την λίστα 1... 10 σε 10...1 . 

Δημοσ.

Μπορεις να το δεις και μονος σου. Δεν ειναι δυσκολο. Αν το προγραμμα ειναι σωστο τοτε θα ταξινομει κατα bubble sort δηλαδη θα αντιστρέψει την λίστα 1... 10 σε 10...1 . 

Ναι, αλλά η άσκηση ζητάει προγραμματιστικό έλεγχο.

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

 

@programmer

Σκέψου αυτό που σου είπε ο imitheos. Επίσης, εσύ στο πρόγραμμά σου κάνεις bubble-sort. Δεν ελέγχεις για πιθανή ακαταστασία... Άρα και μη-ταξινομημένος να είναι ο πίνακας εσύ τον ταξινομείς...

  • Like 1
Δημοσ.

Ναι, αλλά η άσκηση ζητάει προγραμματιστικό έλεγχο.

 

Α γειά σου!

 

Επίσης, εσύ στο πρόγραμμά σου κάνεις bubble-sort.

Ούτε καν bubble sort! Το q φτάνει πάντα μέχρι N-1.

  • Like 1
Δημοσ.
if(a[q]>a[q+1])
  printf("o pinakas einai taksinomhmenos\n");
else 
  printf("o pinakas den einai taksinomhmenos");

πρόσεξε λίγο αυτό,

είσαι εκτός ορίων...

Δημοσ.

Ρε παιδιά, αν το μόνο που θέλει είναι να δει αν είναι ή όχι ταξινομημένος ένα πίνακας, τότε μιλάμε για τετριμμένη συνάρτηση:

/**
 * Return 1 (true) if the len leading elements of the
 * specified array of integers are in ascending order.
 * Otherwise, return 0 (false).
 */
int arrInt_is_sorted_ascending( int arrInt[], size_t len )
{
    for (size_t i=0; i < len-1; i++) {
        if ( arrInt[i] > arrInt[i+1] ) {
            return 0;
        }
    }
    return 1;
}

int main( void )
{
    int a[10] = {1,2,3,4,5,6,7,8,9,10};
    const char *s = arrInt_is_sorted_ascending(a,10)
                            ? "\b"
                            : "not"
                            ;
    printf( "The array is %s sorted.\n", s );
    return 0;
}
Τι το παιδεύουμε με "υποδείξεις" για τέτοια τετριμμένα; Αν τον ts τον ενδιέφερε το άθλημα είτε θα το είχε φτιάξει ήδη μόνος του, είτε θα είχε βρει έτοιμο τον κώδικα σε άλλα sites (το google βρίθει από έτοιμες λύσεις σε τέτοια τετριμμένα).

 

Δώστε κι εδώ τον κώδικα έτοιμο να τελειώνουμε, τουλάχιστον να εμφανίζεται και το insomnia στις λίστες του google για την συγκεκριμένη απορία :P

  • Like 1

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

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

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

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

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

Σύνδεση

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

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