[C++] Variablenname verändern?

-Tob-

Lieutenant
Registriert
Feb. 2004
Beiträge
890
Ich habe da ein kleines Problem mit C++!

Also ich habe mehrere Zahlen die von dem Benutzter eingegeben werden. Die Variablen für die zahlen habe ich: zahl1, zahl2, zahl3 usw. genannt.
Und jetzt würde ich gerne von jeder Variable die zahl ändern, also nicht den Wert der für die Variable eingesetzt worden ist, sondern zahl[1]. Das aus der 1 eine 2 wird. (ich stelle das einfach mal mit einer eckigen klammer dar)

Gibt es eine möglichkeit soetwas mit C++ zu machen?

Ein Beispiel:
Man soll 10 zahlen (zahl1 - zahl10) eingeben. Und dann soll er alle 10 zahlen wieder geben. Und das würde ich gerne mit einer schleife machen.

Code:
"schleife"

zahl[i++];
cout<<zahl[i++];

"end schleife"
Das Beispiel ist ein bisschen sinnlos, aber ich brauche das für was anders, ich hoffe das man anhand des Beispieles erkennen kann was ich meine. :)

Bin für jede hilfe dankbar.
 
du könntest einen array benutzen, sieht von der Syntax her genau so aus wie du es benutzt hast (zahl)

oder hab ich deine Frage falsch verstanden ?
 
ja entweder nimmst du ein einfaches c array oder einen std::vector. das was du da machen willst geht bei c++ nicht da die namen beim compilieren nicht erhalten bleiben sondern wohl direkt in die speicheradressen konvertiert werden.
 
Super vielen dank schon mal. Auf einen Array hätte ich selbst kommen können, davon hab ich schon mal so halbwegs was gehört. :D

Aber ich bekomme das nicht so ganz hin wie ich mir das vorstelle, ich hoffe ihr könnt mir dabei noch mal helfen. Bin halt noch C++ Anfänger. Habe C++ erst seit 4 wochen in der Schule.

Also:

Code:
void main()
{
float zahl[10];


cout<<"Bitte geben sie die 1. Zahl ein:";
cin>>zahl;
.
.
.
.

cout<<"Bitte geben sie die 10. Zahl ein:";
cin>>zahl;

   //hier bin ich mir nicht sicher ob ich "c" und "i" noch mit der Zahl 1 belgen soll


if (zahl[c] > zahl[i])
{
        zahl[++i];
        cou<<zahl[i];
}
else
{
        zahl[++c]
        cout<<zahl[c];
}



getch();
}

So ungefähr habe ich mir das vorgestellt!

Jetzt bin ich mir bei folgendem nicht sicher:
1. muss ich "c" und "i" als int variable reservieren?
2. kann ich bei der eingabe von zahl, 10 mal die variable "zahl" benutzten oder muss es vieleicht "zahl[1] - "zahl[10]" heißen?

PS: um die if, else anweisung kommt dann später noch ne schleife und so. :) Ich würde das gerne erstmal mit dem array hin bekommen!

Bräuchte da einfach noch mal eure hilfe, ich will das unbedingt hinbekommen! :D
Wäre super wenn ihr mir nochmal helfen könntet.
 
Jep, is definitiv unmöglich. Aber genau für diese Anwendung wurden ja Arrays unter anderem gemacht. ;)
Du kannst es einfach so deklarieren:
Code:
int zahl [4];
und kannst dann einfach mit
Code:
int temp=zahl[1];
zahl[2]=temp;
Die Zahlen vertauschen.

Oder du arbeitest mit Pointern, dann kannst du die verbiegen. Ist aber ein wenig mehr Hirnschmalz von nöten, wenn du noch nie damit gearbeitet hast.

//Edit <-- zu langsam :heilig:

Code:
void main()
{
float zahl[10];

[COLOR=Red]for (int i=0; i<11; i++){
cout<<"Bitte geben sie die "<<i<<". Zahl ein:";
cin>>zahl[COLOR=Red][i][/COLOR];
}
[/COLOR]
   //hier bin ich mir nicht sicher ob ich "c" und "i" noch mit der Zahl 1 belgen soll
[COLOR=Red]  // ja, c und i sind integers, und müssen auch deklariert und initialisiert werden. ;)[/COLOR]

if (zahl[c] > zahl[i])
{
        zahl[++i];[COLOR=Red] //was sollte denn hier passieren?[/COLOR]
        cou<<zahl[i];
}
else
{
        zahl[++c][COLOR=Red] //was sollte denn hier passieren?[/COLOR]
        cout<<zahl[c];
}



getch();
}
 
Zuletzt bearbeitet:
Danke für die schleife! Das sieht natürlich noch eleganter aus. :)

Code:
if (zahl[c] > zahl[i])
{
        zahl[++i]; //was sollte denn hier passieren?
                   [COLOR=DarkGreen]//hier soll sozusagen aus zahl[1] zahl[2] werden. :D[/COLOR]
        cout<<zahl[i];
}
else
{
        zahl[++c] //was sollte denn hier passieren?
              [COLOR=DarkGreen]    //hier das selbe![/COLOR]
        cout<<zahl[c];
}
Ich hoffe du weißt jetzt was ich meine?! ;)
 
Green Mamba schrieb:
Code:
void main()
{
float zahl[10];

[COLOR=Red]for (int i=0; i<[s]11[/s][color=blue]10[/color][color=red]; i++){

cout<<"Bitte geben sie die "<<i[/color][color=blue]+1[/color]<<". Zahl ein:";
cin>>zahl[COLOR=Red][i][/COLOR];
}
[/COLOR]
   //hier bin ich mir nicht sicher ob ich "c" und "i" noch mit der Zahl 1 belgen soll
[COLOR=Red]  // ja, c und i sind integers, und müssen auch deklariert und initialisiert werden. ;)[/COLOR]

if (zahl[c] > zahl[i])
{
        zahl[++i];[COLOR=Red] //was sollte denn hier passieren?[/COLOR]
        cou<<zahl[i];
}
else
{
        zahl[++c][COLOR=Red] //was sollte denn hier passieren?[/COLOR]
        cout<<zahl[c];
}



getch();
}
Korrektur in blau...
 
Zuletzt bearbeitet: (so, zu ende verbessert ;))
hoppala, dann aber besser so:
Code:
...

if (zahl[c] > zahl[i])
{
        zahl[i]=zahl[i+1]; //vielleicht so? oder willst du die tauschen?
        cou<<zahl[i];
}
...
Was genau soll das Programm denn überhaupt machen? :confused_alt:
 
An der stelle muss ich jetzt einfach mal sagen das ihr super seid! Ich finde es echt super klasse wie ihr euch um mein Problem bemüht! THX :) :daumen:


Also sagen wir in zahl[1] steht eine 2 und in zahl[2] steht eine 5.
Ich möchte in der if anweisung das die zahl[1] (2) duch die zahl[2] (5) ersetzt wird! Also ich will sie sozusagen tauschen!

Denn ich möchte dann beim nächsten schritt eine schleife um die if anweisung machen und es soll bei jedem durchlauf die zahl[1] in zahl[2] dann in zahl[3] usw. geändert werden, bis zur zahl[10].
Aber das will ich erst nachher machen, damit ich erstmal das mit dem array hinbekommen! Ich dachte das wäre total einfach und jetzt merke ich das es doch etwas komplizerter ist! Aber ich habe es (dank euer bemühungen) schon fast verstanden und ich geben nicht auf! :)
 
Zurück
Oben