WinFuture-Forum.de: Mit C Eine Matrix Sortieren - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Mit C Eine Matrix Sortieren


#1 Mitglied ist offline   sAsA 

  • Gruppe: aktive Mitglieder
  • Beiträge: 114
  • Beigetreten: 26. Oktober 04
  • Reputation: 0
  • Interessen:so dies und das ;)

geschrieben 30. November 2007 - 09:23

Guten morgen, ich brauch mal einen kleinen Denkanstoß,

Also ich habe ein Stückchen Code gebastelt, dass mir eine Matrix nxn ausgibt, die mit Zufallszahlen von 1 -100 gefüllt wird. Jetzt möcht ich die Matrix sortieren und da stehe ich irgendwie auf dem Schlauch. Nen einfacher Vektor mit Bubble Sort ist ja kein Problem aber ich kriegs nicht hin auf ne Matrix zu übertragen....

könnt ihrm ir da mal nen Anstoß geben :unsure:?


#include <stdio.h>
#include <string.h>
#include <fb5.h>

void main(void) {

int a[11][11],i,j;

for(i=1;i<=10;++i)
	for(j=1;j<=10;++j)
		a[i][j] = (int)(100*rnd()+1);


for(i=1;i<=10;++i)
{
	printf("\n");
	for(j=1;j<=10;++j)
		printf("%5d",a[i][j]);
}

printf("\n\n\n");

}



Achja die Zahlen sollen über die ganze Matrix aufsteigend sortiert werden!

Gruß
sascha

Dieser Beitrag wurde von sAsA bearbeitet: 30. November 2007 - 10:47

0

Anzeige



#2 Mitglied ist offline   sAsA 

  • Gruppe: aktive Mitglieder
  • Beiträge: 114
  • Beigetreten: 26. Oktober 04
  • Reputation: 0
  • Interessen:so dies und das ;)

geschrieben 30. November 2007 - 13:09

so erledigt,

falls es wen interessiert hier meine Lösung:

/*Aufgabe E13*/

#include <stdio.h>
#include <string.h>
#include <fb5.h>

void main(void) {

int a[11][11],i,j,x[100],k=1,temp;


/*befüllen der Matrix mit 100 Zufallszahlen*/
for(i=1;i<=10;++i)
	for(j=1;j<=10;++j)
		a[i][j] = (int)(100*rnd()+1);

/*Schreibt die Elemente der Matrix in ein Array*/
for(i=1;i<=10;++i)
	for(j=1;j<=10;++j)
	{
		x[k] = a[i][j];
		k++;
	}

/*Bubbel Sort auf das Array x[] */
for(j=100; j>=2;j--)
	for(i=2;i<=j;i++)
		if(x[i-1]>x[i])
		{
			temp = x[i];
			x[i] = x[i-1];
			x[i-1] = temp;
		}

/*Schreibt das Array wieder in eine Matrix */
k=1;
for(i=1;i<=10;++i)
	for(j=1;j<=10;++j)
	{
		a[i][j] = x[k];
		k++;
	}

/*Gibt die Matrix aus */
for(i=1;i<=10;++i)
{
	printf("\n");
	for(j=1;j<=10;++j)
		printf("%5d",a[i][j]);
}



printf("\n\n\n");

}

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0