Unlösbare Aufgabe?

NetFuchx

Grünschnabel
Hallo,
also studiere Biowissenschaften und habe Informatik mit C++, verstehe aber kein Wort.
Nun, heut soll ich ein Programm bauen das max 10 Artikelnummern in ein Array aufnimmt, dann sortiert in 2 Gruppen ( Art-Nr 30xxxxx bzw Art-Nr 35xxxxxx mit Selection sort) und dann das Programm wieder neustarten können.

Hab schon etwas angefangen, aber absolut keinen Plan wie ich die selection sort programmier bzw das programm neu startbar ist:


#include <stdio.h>

int main (void)

{

int a, i;
int art[10];

printf("\nGeben Sie bitte die Artikelnummern ein:\n\n");
scanf ("%d", &a);

a=10;

for (i=0; i<a; i++)
{ printf ("%d Artikelnummer ", i+1);
scanf ("%d", &i+1);
}

return 0;

}

mittlerweile ein wenig verändert .... wäre für jede Hilfe dankbar

grüße
 
Zuletzt bearbeitet:
Hallo

SelectSort ist ja ein quasi fester Algorythmus den musst du dir ja nicht neu ausdenken, also guckt man mal im Internet wie der implementiert ist, da ich sowas schonmal gemacht hab, siehe meine Webseite :) hier mal das wesentliche.
Beim Einlesen deiner Werte musst du die eingegebene Zahl auch dem Array zuweisen.
C:
scanf ("%d", &art[i]);

Eine Variante des SelectSort. Willst du sie verwenden so musst du dein Array an dem Typ anpassen also "double".
C:
// Typfestlegung
typedef unsigned int uint;  
// Select_Sort Funktion erwartet ein Zeiger auf das Array und die Größe des Arrays
void SelectSort(double *arr,uint N)
{
  uint min;
  // min = Schlüssel mit kleinstem Wert
  double tmp;
  for (uint i = 0; i<N-1; i++)
  {
    min = i;
    for (uint j = i+1; j<N; j++)
    // Nachfolger<akt. Wert ?
      if (arr[j]<arr[min]) min = j;
    // min. Wert am "Anfang" setzen
    tmp = arr[min];
    arr[min] = arr[i];
    arr[i] = tmp;
  }
}

// Aufruf
SelectSort(art,10);

Wenn du vor hast den Algorytmhus zu verstehen dann empfehle ich z.b. ein Blatt Papier ein kleines Zahlenarray zu nehmen und es manuell durchzugehen, das hilft aufjedenfall. Der Titel ist übrigens unpassend...

mfg
 
Zuletzt bearbeitet:
danke,

aber das is schon wieder etwas wo ich ni durchblick ... "double", "uint", "tmp" usw sind alles dinge die ich noch nie gehört habe ....
deswegen fällt es mir auch schwer das zeug aus dem internet umzusetzen ...

mmhh
 
double ist ein Datentyp von C/C++ also eine Variable die Gleitkommerzahlen speichern kann.
uint ist eine durch den Programier neu vorgegebener Datentyp der unsigned (also Vorzeichen los) vom typ int ist, also ganzzahlige Werte aufnehmen kann!
Und tmp ist eine normale double Variable!

Du solltest erstmal in den Tutorials ein paar C/C++ Tutorials lesen!
Da du die Grund - Datentypen kennen solltest und für deine Aufgabe auch die Arbeit mit Arrays verstehen solltest!

Das hilft dir vielleicht auch weiter: http://www.galileo-press.de/openbook/c_von_a_bis_z/c_007_000.htm

Gruß XeoX
 
Du solltest erstmal in den Tutorials ein paar C/C++ Tutorials lesen!

Da ich aber mich nur durchkämpfe und dieses Fach nur für ein Semester habe und nie wieder , beschäftige ich mich lieber mit wichtigeren Dingen intensiv und nicht nur mit C++ .... ich kann verstehen das sich Leute da auf den Schlips getreten fühlen, aber ich will das gar nicht richtig können, sondern nur durch das Semester kommen!

Ich kann mit dem Beitrag von Online-Skater leider nichts anfangen ... wie binde ich das ein, was muss ich wie deklarieren mit dem bereits verwendeten?
Ich bin einfach total Ahnungslos und hab einfach nur mal verständliche Hilfe erbeten, sorry!
 
Zuletzt bearbeitet:
Zurück