![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Elite
![]() Registriert seit: 07.09.2000
Beiträge: 1.036
|
![]() vektoren. also ich glaub ich steh mal wieder auf der seife. und ja - ich hab bereits mehrere skripte sudiert
(im inet gibts genug davon - deshalb, bitte nicht aus nem buch zitieren, dass hilft mir nichts, weil sonst hätt ichs bereits kapiert ![]() meisterin in erklärungen - schaltets für mich einfach mal auf dummiemodus, danke. vektor syntax: typ variablenname[anzahl_der_elemente_odr_auch_index_genannt]; Code:
#include <stdio.h> int main() { int i, zahl[10]; /* meine fragen-erklärungen zum beispiel siehe unten. NR 1 */ printf("..."); /* nö - keine frage */ for (i=0; i<10; i++) /* frage NR 2 */ scanf(".....", zahl[i]); /* frage NR 3 */ for (i=9; i>=0; i--) /*frage NR 4 */ prinft("...", zahl[i]); return 1; } NR 2 schätze mal i=0; gilt für anfang und i<10 ist das ende (weil 10 werte - wobei von 0-9 gezählt wird, i++ bedeutet, dass bei der eingabe der werte - nach enter immer der wert auf dem nächsten platz gespeichert wird. NR 3 zahl[i] betrifft irgendwie NR 1 - könnte ich nicht: for (zahl=0; zahl<10; zahl++) scanf(".....", zahl[]) schreiben? wieso sollte ich bei varname[index] in index die var i angeben? NR 4 wenn ich was umgekehrt (i--) ausgeben möchte schreibe ich zuerst: for i=9 weil ich ja von hinten anfange. soweit so gut, aber ich hab noch ein beispiel, da versteh ich scheinbar nur mehr bahnhof... Code:
#include <stdio.h> int main() { int i, laenge, wort[21]; for(i=0; i<21; i++) wort[i]=0; /* frage NR 1 */ printf("...."); while(getchar()!='\n') { for(laenge=1; getchar()!='\n'; laenge++); /* frage NR 2 */ if(laenge>20) wort[20]++; else wort[laenge-1]++; /*frage NR 3 */ } for(i=0; i<21; i++) printf("%d Wörter mit %d Buchstaben\n", wort[i], i+1); /* frage NR 4 */ return 1; } NR 2 wieso laenge=1 ? müsste dass nicht laenge=0 sein, ich fange doch bei 0 an. NR 3 häää??? NR 4 ist mir klar dass ich %d was zuweisen muss, aber wieso hat das i ein +1?
____________________________________
Bye Bastet |
![]() |
![]() |
![]() |
#2 |
Elite
![]() |
![]() also erstens: gebräuchlicher ist der ausdruck array. vektor ist nur selten in dem zusammenhang zu finden.
zu deinen fragen: 1) i brauchst du zum durchlaufen des arrays und weil du in c bist musst du die vars oben bereits deklarieren. i hat aber ansonsten mit zahl nix zu tun, ist eine eigentständige var. vielleicht verständlicher wenn du schreibst int zahl[10]; // array int i; /counter 2 + 3) stell dir ein array als straße vor. der name des arrays ist der straßenname. zahl ist also eine straße mit 10 häusern, in denen kannst du werte speichern. wenn du auf das dritte haus zugreifen willst brauchst du straßenname + hausnummer. zahl[2] oder - ohne vergleich. zahl ist nur ein pointer auf die startadresse eines freien speicherbereiches. die länge des speicherbereichs ist die anzahl der elemente * der größe in bytes pro element. um auf ein element zugreifen zu können, benutzt man den index, der die entsprechende zahl an bytes "weiterspringt" zweiter fragenblock: nr 1: die werte im array sind nicht standardmäßig gesetzt, sprich nehmen irgendeinen wert an. deshalb setzt du alle werte zu sicherheit mal auf 0. nr 2 + 3: das is wirklich strange. aber da du an der position laenge - 1 speicherst, fängst du effektiv eh bei 0 an. der grund ist hier die besssere lesbarkeit, (laenge fängt bei 1 an) meiner meinung nach aber net wirklcih sinnvoll hier. kommentare fehlen, genau solche sachen gehören kommentiert nr 4: du speicherst an index 0 die zahl der wörter mit 1 buchstaben länge, an index 1 die mit 2 buchstaben usw. sprich an adresse i speicherst du die zahl der wörter mit i+1 buchstaben. alles klar?
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees. |
![]() |
![]() |
![]() |
#3 |
Elite
![]() Registriert seit: 07.09.2000
Beiträge: 1.036
|
![]() ja danke - du hasts super erklärt - ich habs jetzt verstanden
![]() wenn ich irgendwo so ne erklärung gefunden hätte, hätte ich mein hirn nicht so malträtieren müssen... tja, wieso solltens die bücher einfach schreiben. da könnte doch dann jeder alles ![]() ![]()
____________________________________
Bye Bastet |
![]() |
![]() |
![]() |
#4 |
Elite
![]() |
![]() i schick da halt dann die rechnung
![]()
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees. |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|