Brauche dringend Hilfe beim sortieren von Zahlen !!



  • Hallo liebe Member,

    ich habe ein kleines Problem und zwar beschäftige ich mich erst seit kurzem mit der Programmiersprache 'C' und muss für ein Projekt ein paar Zahlen sortieren (5-10 Zahlen).

    Ich suche nun schon seit Tagen nach einer anständigen Lösung und habe mir schon die 'q- und BubbleSort' Varianten angeguckt verstehe davon aber recht wenig, bzw. weiß ich auch nicht wie ich das in NetBeans (NetBeans IDE 8.0) umsetzen könnte.. 😕

    Ich hoffe es kann mir da vielleicht jemand weiterhelfen ?!

    MfG Buudi 🙂



  • Bau mal das Prog fertig bis auf den finalen qsort-Aufruf.
    Die dann nötigen 4 Zeilen fummeln wir dann rein.



  • Also ich habe hier 2 Zahlenketten. Einmal die geraden und einmal die ungeraden Zahlen (0-10) und die sollen jetzt jeweils sortiert werden.

    #include <cstdlib>
    #include <stdio.h>
    using namespace std;

    int main(int argc, char** argv) {

    int pa[6] = {0, 8, 4, 10, 2, 6};

    int i = 0;

    printf("\n");
    printf("%d ", pa[0]);

    for (i = 1; i < 5; i++) {
    printf(" , %d", pa[i]);
    }

    printf("\n");
    int pb[5] = {5, 9, 1, 7, 3};

    int j = 0;

    printf("\n");
    printf("%d ", pb[0]);

    for (j = 1; j < 5; j++) {
    printf(" , %d", pb[j]);
    }

    return 0;
    }



  • //#include <cstdlib>
    //geht in C nicht
    #include <stdlib.h>
    
    #include <stdio.h>
    
    //using namespace std;
    //geht in C nicht
    
    int compareInts(const void* a,const void* b){
    	if(*(int*)a<*(int*)b) return -1;
    	if(*(int*)a>*(int*)b) return 1;
    	return 0;
    }
    
    int main(int argc, char** argv) {
    
    	int pa[6] = {0, 8, 4, 10, 2, 6};
    
    	int i = 0;
    
    	printf("\n");
    	printf("%d ", pa[0]);
    
    	qsort(pa,sizeof(pa)/sizeof(pa[0]),4,&compareInts);
    
    	for(i = 1; i < 5; i++) {
    		printf(" , %d", pa[i]);
    	}
    
    	printf("\n");
    	int pb[5] = {5, 9, 1, 7, 3};
    
    	qsort(pb,sizeof(pb)/sizeof(pb[0]),4,&compareInts);
    
    	int j = 0;
    
    	printf("\n");
    	printf("%d ", pb[0]);
    
    	for(j = 1; j < 5; j++) {
    		printf(" , %d", pb[j]);
    	}
    
    	return 0;
    }
    


  • Super klasse 🙂
    Vielen vielen danke für die schnelle Hilfe 🙂 👍

    MfG



  • Wäre es nicht lehrreicher selber die Sortierfunktion zu schreiben?

    Zumindest Bubblesort solltest du schaffen.


Anmelden zum Antworten