Wieso bekomme ich keine Ausgabe in meinem Programm in C?
Das ist mein Code
#include <stdio.h>
int main()
{
int Zahl1,Zahl2;
int y=3^9;
int i=Zahl1^Zahl2;
printf("Geben Sie eine Zahl für die Basis ein");
scanf("%i",&Zahl1);
printf("Geben Sie eine Zahl für den Expnenten ein");
scanf("%i",&Zahl2);
for (i=0; i=y; i += 1);
{
printf("%y");
}
printf("%y");
return 0;
}
2 Antworten
Du bekommst wahrscheinlich keine Ausgabe, weil du zu einem eine Binär Operation genauer gesagt ein ^(xor) auf y und i machst.
int y=3^9;
dies bedeutet nichts anderes als 3 xor 9 was 10 wäre.
printf("%y");
Bei printf fehlt des weiteren die Typ Angabe von y und müsste wie folgt aussehen
printf("%d\n", &y);
printf("Geben Sie eine Zahl für die Basis ein");
und wenn du Absätze haben willst must du am ende von Printf schreiben \n.
printf("Geben Sie eine Zahl für die Basis ein\n");
int i = Zahl1^Zahl2;
Problem hier ist das Zahl1 und Zahl2 noch keinen Wert zugewiesen bekommen haben.
Um mit Exponenten zu rechen brauchst du in der einfachen Form noch zusätzlich die <math.h> Standardbibliothek.
Erst mal was soll das Programm überhaupt machen?
Das setzen von Zahl1 und 2 hat keinen Effekt, weil die Zuweisung von i ja bereits vorher passiert.
Zudem ist Zahl1 und Zahl2 zum Zeitpunkt der Zuweisung an i nicht definiert damit ist i nicht definiert, also da steht irgendetwas zufälliges drinnen.
y ist fix gesetzt, aber die Schleife stimmt nicht, denn i=y muss schon ein großer Zufall sein, dass das eintritt wenn schon i < y oder i <= y sonst läuft die Schleife nicht.
Wie LisamagPeferde04 ebenfalls noch geschrieben hat:
In C ist ^ nicht der Potenzoperator sondern die XOR Funktion. Printf braucht zudem noch einen Parameter sonst weiß es ja nicht welche Zahl es ausgeben soll, %y ist zudem kein definierter Platzhalter in printf.
Korrekt wäre hier: printf("%i",y); %i ist dabei der Platzhalter für einen Integer und y die Variable die da rein soll.
Stimmt das hab ich glatt noch übersehen. Danke für den Hinweis, werde es in der Antwort ergänzen.
Zudem berechnet man in C die Potenz auch nicht mit ^ und das prinft bei der Ausgabe macht so wie es formatiert ist keinen Sinn