• 09.05.2024, 20:34
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Hilfe bei C-Programm (an die Programmierer)

Dienstag, 5. Juni 2007, 13:53

Hallo!
Ich hab da gerad mal ein problem, bzw ein kumpel und ich!
wir sollen ein programm schreiben, welches eine liste von leuten nach nachnamen sortiert, aber wir bekommen die fehler einfach nicht raus aus dem programm und uns fällt irgendwie nichts mehr ein! hoffe ihr könnt uns weiterhelfen!

hier der quellcode:

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


struct perslist {
char vname[25];
char nname[25];
int alter;
} pers[10];



int bubblesort(struct perslist pers[], int length){
int i=1;
length=10;
int j=0;
char var[25];
for(i=1; i<=length ; i++) {
var = pers.nname; //incompatible types in assignment
j=i;

while (j >= 1 && strcmp(pers[j-1].nname,var) > 0) {
pers[j].nname =pers[j-1].nname; //incompatible types in assignment
j = j-1;
}
pers[j].nname=var; //incompatible types in assignment
}

}



int main(void) {



int i;

struct perslist pers[10]= {{"Max","Mutzke",26},
{"Andreas","Silis",21},
{"Petra","Mustermann",45},
{"Bernd","Stromberg",50},
{"Homer","Simpson",34},
{"Ned","Flanders",34},
{"Milhouse","Vanhouten",10},
{"Jet","Li",30},
{"Heidi","Klum",35},
{"Arnold","Schwarzenegger",55}
};


/*Daten sortieren*/


bubblesort(struct perslist pers[10], 10); //syntax error before "struct"

/*Daten ausgeben*/
for(i=0; i<=10;) {
printf("Nachname....:%s",pers[i].nname);
printf("Vorname.....:%s",pers[i].vname);
printf("Alter.......:%i\n\n",pers[i].alter);
i++;
}

system("PAUSE");
return (0);

}
Wenn man 50 Dollar Schulden hat, so ist man ein Schnorrer.
Hat jemand 50.000 Dollar Schulden, so ist er ein Geschäftsmann.
Wer 50 Millionen Dollar Schulden hat, ist ein Finanzgenie.
50 Milliarden Dollar Schulden haben - das kann nur der Staat.

Re: Hilfe bei C-Programm (an die Programmierer)

Dienstag, 5. Juni 2007, 14:08

Mal davon abgesehen, dass das Software-Brett der bessere Ort gewesen wäre: Ich steck' da nicht so drin, aber ist `pers.nname` nicht ein Pointer?

Re: Hilfe bei C-Programm (an die Programmierer)

Dienstag, 5. Juni 2007, 14:13

::) ::) ::)

ok das hat schonmal geholfen...bleibt nur noch der letzte fehler
Wenn man 50 Dollar Schulden hat, so ist man ein Schnorrer.
Hat jemand 50.000 Dollar Schulden, so ist er ein Geschäftsmann.
Wer 50 Millionen Dollar Schulden hat, ist ein Finanzgenie.
50 Milliarden Dollar Schulden haben - das kann nur der Staat.

Re: Hilfe bei C-Programm (an die Programmierer)

Dienstag, 5. Juni 2007, 14:27

Zumindest `struct` wird vermutlich nicht mit übergeben, da es ein Schlüsselwort zur Definition ist.

Re: Hilfe bei C-Programm (an die Programmierer)

Dienstag, 5. Juni 2007, 14:33

perslist auch nicht und wenn ich mich nicht verzählt habe sind es drei überflüssige "struct". Ausserdem willst du nicht nur ein Element mit an bubblesort übergeben.

Re: Hilfe bei C-Programm (an die Programmierer)

Dienstag, 5. Juni 2007, 14:48

hattet ihr das in etwa in folgender form gedacht?

bubblesort( pers[10], 10);


da erhalten wir den fehler:

" incompatible type for argument 1 of `bubblesort' "


wir stehen gerad ein wenig auf dem schlauch...... :P :-/
Wenn man 50 Dollar Schulden hat, so ist man ein Schnorrer.
Hat jemand 50.000 Dollar Schulden, so ist er ein Geschäftsmann.
Wer 50 Millionen Dollar Schulden hat, ist ein Finanzgenie.
50 Milliarden Dollar Schulden haben - das kann nur der Staat.

Re: Hilfe bei C-Programm (an die Programmierer)

Dienstag, 5. Juni 2007, 14:55

Damit übergibst du ja nur ein Element. Bubblesort erwartet aber ein Array. Also:

bubblesort(pers, 10);

Re: Hilfe bei C-Programm (an die Programmierer)

Dienstag, 5. Juni 2007, 14:55

eher wohl:

bubblesort( pers, 10);

wenn ihr pers[10] übergebt bedeutet das ihr nicht das ganze array übergebt sondern das 11te element des arrays (bei c fängt man doch auch bei 0 an zu zählen, oder?).
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.

Re: Hilfe bei C-Programm (an die Programmierer)

Dienstag, 5. Juni 2007, 14:58

Zitat von »crushcoder«

wenn ihr pers[10] übergebt bedeutet das ihr nicht das ganze array übergebt sondern das 11te element des arrays (bei c fängt man doch auch bei 0 an zu zählen, oder?).


Wo denn nicht? :)

Aber auch so wird das Programm noch keine korrekten Ergebnisse liefern. Denkt mal über Rückgabewerte oder Pointer nach.

Re: Hilfe bei C-Programm (an die Programmierer)

Dienstag, 5. Juni 2007, 15:02

ok daten bekommen wir jetzt ausgegeben...aber der übergeh wohl die bubblesort-funktion..
jedenfalls gibt er die daten unsortiert aus und nich nachnamenlänge wie gewollt!


edit: danke eike ::)
haben wir auch gerad festgestellt :P
Wenn man 50 Dollar Schulden hat, so ist man ein Schnorrer.
Hat jemand 50.000 Dollar Schulden, so ist er ein Geschäftsmann.
Wer 50 Millionen Dollar Schulden hat, ist ein Finanzgenie.
50 Milliarden Dollar Schulden haben - das kann nur der Staat.

Re: Hilfe bei C-Programm (an die Programmierer)

Dienstag, 5. Juni 2007, 15:15

Zitat von »Eike«

Wo denn nicht? :)

navision von microsoft, muss man aber nicht kennen.
gibt noch andere exoten.

aber etwas sarkasmus muss ja auch erlaubt sein. ;)

edit:
problem ist dabei das das array zwar in der funktion geändert wird, aber dies nur eine kopie des eigentlichen arrays ist.
ihr müsstet der funktion einen pointer aufs array übergeben oder das veränderte array zurückgegeben.
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.

Re: Hilfe bei C-Programm (an die Programmierer)

Dienstag, 5. Juni 2007, 15:37

also, wenn ich mir das so anschaue, so wirst du eh ein Ergebnis bekommen, was dich verwundern wird.

Die Vornamen & alter werden alle gleich bleiben, aber die Nachnamen werden durchgetauscht. ist das beabsichtigt?...
c++: The power, elegance and simplicity of a hand grenade.

Re: Hilfe bei C-Programm (an die Programmierer)

Dienstag, 5. Juni 2007, 16:08

nein ist nicht beabsichtigt!
danke für den hinweis!

ich hab jetzt erstmal was vor, meld mich aber später nochma wenn wir nicht weiterkommen sollten!

danke schonmal für die hilfe!
Wenn man 50 Dollar Schulden hat, so ist man ein Schnorrer.
Hat jemand 50.000 Dollar Schulden, so ist er ein Geschäftsmann.
Wer 50 Millionen Dollar Schulden hat, ist ein Finanzgenie.
50 Milliarden Dollar Schulden haben - das kann nur der Staat.

Re: Hilfe bei C-Programm (an die Programmierer)

Dienstag, 5. Juni 2007, 16:11

Und ihr müsst unbedingt in C programmieren?

Re: Hilfe bei C-Programm (an die Programmierer)

Dienstag, 5. Juni 2007, 20:48

leider ja!

naja schlimm genug das wir das als maschbauer machen müssen ::)

tante edit sagt:

wenn noch jemand ner idee hat immer her damit...!
wir sind auch zu dritt nicht weiter gekommen!
man gut mein lianli is mir so ans herz gewachsen...ich verspüre große lust mein rechner ausm fenster zu werfen ::) ::) ::)
Wenn man 50 Dollar Schulden hat, so ist man ein Schnorrer.
Hat jemand 50.000 Dollar Schulden, so ist er ein Geschäftsmann.
Wer 50 Millionen Dollar Schulden hat, ist ein Finanzgenie.
50 Milliarden Dollar Schulden haben - das kann nur der Staat.

Re: Hilfe bei C-Programm (an die Programmierer)

Mittwoch, 6. Juni 2007, 00:07

Boah Leute, also echt... so viele Fehler in einem einzigen Programm gehn ja echt auf keine Kuhhaut... selbst wenn ihr den gesamten Sortieralgorithmus komplett weglasst, nichtmal die unsortierte Ausgabe funktioniert richtig, weil ihr insgesamt elf Elemente statt 10 ausgebt... wozu eine for-schleife gut ist habt ihr offensichtlich auch noch nicht kapiert.
Ich weiß ja nicht wie lang ihr zu dem Thema schon Vorlesung/Unterricht gehabt habt, aber das was ihr da geschrieben habt ist ehrlich unterirdisch.
Ran an die Bücher und lernen würd ich sagen, das soll nicht großkotzig klingen, aber auch Maschinenbauer müssen ein bisschen Ahnung vom Programmieren haben, und so nen Standardalgorithmus ist echt Pipifax, eigentlich.

Ich hab mal schnell ne Version zusammengehackt die funktioniert. Bitte, nehmt das nicht einfach hin, sondern schauts Euch an, lest die Hinweise die hier schon gepostet wurden und vollzieht das nach.
Das Programm hier entstand innerhalb 10 Minuten, also ich übernehm keine Garantie für Richtigkeit, aber es funktioniert schonmal für erste. Optimieren/Verbessern könnt ihrs ja dann selber

Zitat


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

typedef struct
{
char vname[25];
char nname[25];
int alter;
} perslist;

void bubblesort(perslist *ptr, int length)
{
int i, j;
perslist temp;

for(i=0;i<=length;i++)
{
for(j=0;j<=length;j++)
{
if(j < length)
{
if(strcmp(ptr[j].nname, ptr[j+1].nname) > 0)
{
temp = ptr[j];
ptr[j] = ptr[j+1];
ptr[j+1] = temp;
}
}
}
}
}


int main()
{
int i, length;

perslist pers[]=
{
{"Max","Mutzke",26},
{"Andreas","Silis",21},
{"Petra","Mustermann",45},
{"Bernd","Stromberg",50},
{"Homer","Simpson",34},
{"Ned","Flanders",34},
{"Milhouse","Vanhouten",10},
{"Jet","Li",30},
{"Heidi","Klum",35},
{"Arnold","Schwarzenegger",55}
};

length = sizeof(pers)/sizeof(perslist);

/*Daten sortieren*/
bubblesort(pers, length);

/*Daten ausgeben*/
for(i=0; i<length; i++)
{
printf("Nachname....:%s\n",pers.nname);
printf("Vorname.....:%s\n",pers[i].vname);
printf("Alter.......:%i\n\n",pers[i].alter);
}

return 0;
}

C programmers never die. They are just cast into void. Neues moddingtech.de Portal online!

Re: Hilfe bei C-Programm (an die Programmierer)

Mittwoch, 6. Juni 2007, 01:21

danke für deien hilfe ich werds mir nochmal in ruhe zu gemüte führen ums genau nach zu vollziehen!

aber ich find es seit eingier zeit doch etwas schwerer, da wir halt vorher mit ähnlichem nichts zu tun hatten und jetzt absolut ins kalte wasser geschmissen wurden...

und natürlich sollte man auch von "randbereichen" (ja, es kann je nach ausrichtung auch einen großen teil ausmachen...aber ich meien was den klassischen maschinenbau angeht) ein wenig ahnung haben....aber man tut sich halt doch mal ein wenig schwerer als mit stoff mit dem man mehr bzw länger udn täglicher zu tun hat und da kommt es dann wohl (offensichtlich) uach mal ein wenig zu kurz!

wenn man alles gleich könnte wärs ja schön - aber dann bräuchte man nich mehr zur uni ::)

war ja auch nich so das wir nun nichts mehr getan haben....haben ja nun schon noch weiter dran gearbeitet...aber ab und zu findet man den fehler mal nich auf anhieb gerad wenn man erst damit angefangen hat!

Zitat von »-Joker-«

... das soll nicht großkotzig klingen,...


son bischen tuts das aber ::)
(nich bös nehmen ;) )
Wenn man 50 Dollar Schulden hat, so ist man ein Schnorrer.
Hat jemand 50.000 Dollar Schulden, so ist er ein Geschäftsmann.
Wer 50 Millionen Dollar Schulden hat, ist ein Finanzgenie.
50 Milliarden Dollar Schulden haben - das kann nur der Staat.

Re: Hilfe bei C-Programm (an die Programmierer)

Mittwoch, 6. Juni 2007, 02:35

Zitat von »-Joker-«

Boah Leute, also echt... so viele Fehler in einem einzigen Programm gehn ja echt auf keine Kuhhaut... selbst wenn ihr den gesamten Sortieralgorithmus komplett weglasst, nichtmal die unsortierte Ausgabe funktioniert richtig, weil ihr insgesamt elf Elemente statt 10 ausgebt... wozu eine for-schleife gut ist habt ihr offensichtlich auch noch nicht kapiert.


Hallo? Das sind Maschbauer, was willst Du da erwarten ;D

Duck und wech ...

Re: Hilfe bei C-Programm (an die Programmierer)

Mittwoch, 6. Juni 2007, 09:55

stimmt wir sind genug damit beschäftigt die gesamte reale welt zu beherrschen ::) ::) ::)
Wenn man 50 Dollar Schulden hat, so ist man ein Schnorrer.
Hat jemand 50.000 Dollar Schulden, so ist er ein Geschäftsmann.
Wer 50 Millionen Dollar Schulden hat, ist ein Finanzgenie.
50 Milliarden Dollar Schulden haben - das kann nur der Staat.

Re: Hilfe bei C-Programm (an die Programmierer)

Mittwoch, 6. Juni 2007, 10:11

Zitat von »Erklärbär«



Hallo? Das sind Maschbauer, was willst Du da erwarten ;D

Duck und wech ...

Kumpel von mir ist auch Maschinenbauer und beschäftigt sich in nem bekannten Stuttgarter Unternehmen mit Motorenentwicklung... und siehe da, auch son Motor läuft nicht ohne Software ;)
Also kommt mir nicht mit "realer Welt" - wenn son Motor nicht real ist, weiß ich auch nicht ;)
C programmers never die. They are just cast into void. Neues moddingtech.de Portal online!