2010-11-23 4 views
0

Guten Tag, Ich versuche eine Aufgabe zu erfüllen, von der ich weiß, dass sie machbar ist. aber meine Versuche scheinen jedes Mal zu scheitern. Mein Bestreben ist es, in Objective-c zu programmieren und gute Fortschritte zu machen. Was ich tun möchte, ist eine Schleife zu meiner aktuellen Anwendung, die am Ende fragt, ob ich wieder oder etwas in dieser Hinsicht laufen möchte, und antworten mit einem Ja oder Nein. Wenn nein, endet das Programm und wenn ja, springt es zurück zum Anfang des Projekts, um von vorne zu beginnen. irgendwie wie, was ich unten habe? verzeih mir bitte, wenn es nicht ganz perfekt ist, ich habe mich immer noch an die Programmierung gewöhnt und finde es unglaublich lustig.Schleife auf Aufforderung mit einem Ja oder Nein?

#include <stdio.h> 
int main(void) 
{ 
    char loop = yes; 

    while (loop = yes) 
{ 
    . 
    . 
    . 
} 
    printf ("would you like to continue (yes/no)/n"); 
    scanf ("%s", loop); 
} 
+0

Warum hat das 'Ziel-c 'als Tag? Es sieht aus wie C-Code. –

Antwort

1

Das printf und scanf müssen in den geschweiften Klammern der while-Schleife nach oben verschoben werden. Außerdem möchten Sie \ n anstelle von/n im printf. Schließlich erhalten Sie eine Zeichenfolge zurück mit diesem Aufruf scanf(), so dass Sie Schleife als char-Array deklarieren wollen, und dann in der while-Schleife, überprüfen Sie das erste Element des Arrays für ein "y" oder 'n' oder so ähnlich. Vielleicht möchten Sie auch getchar() anstelle von scanf() für diese Art von Sache betrachten.

1

Nicht hier zusammengestellt, aber sollte Arbeit:

#include <stdio.h> 
int main(void) 
{ 
    char buffer[256]; 

do { 
    . 
    . 
    . 
    printf ("would you like to continue (yes/no)/n"); 
    scanf ("%s", buffer); 
} while (strcmp(buffer,"yes") != 0); 

} 

Man würde so etwas in einer realen Welt Anwendung nicht tun, aber zu Demonstrationszwecken sollte es in Ordnung sein.

Ich habe Ihre Variable zu einem Array gemacht, weil Strings Arrays von Zeichen in C sind. Die Länge ist auf 256 Bytes eingestellt (255 Zeichen + 0 Bytes als Trennzeichen). Ich habe die Schleife in Do-While geändert, um sie mindestens einmal laufen zu lassen. Für den Stringvergleich müssen Sie eine Funktion aufrufen. strcmp gibt 0 für identische Strings zurück. Schließlich gehört die Frage in der Schleife.

Es ist einfach C obwohl nichts von Objective-C verwendet.

-1
#include <stdio.h> 
int main(void) 
{ 
    avi; 
char loop[10]; 
while (loop = yes) 
{ 
. 
. 
. 
} 
    printf ("would you like to continue (yes/no)/n"); 
    scanf ("%s", loop); 
    if(strcpm(loop,"YES")==0) goto avi: 
} 
+0

Im Allgemeinen ist die Verwendung von goto ein schlechtes Verhalten, da es für Menschen schwer zu lesen ist. Kannst du irgendeinen Weg vorschlagen, dies zu umgehen? – LeeNeverGup

+0

Wirklich? Ich sehe 'goto X' und weißt du was meine Augen tun? Sie "goto x". Versuchen Sie das mit verschachtelten Dummy 'do ... while (0)' und 'break' Anweisungen überall.' –

0
int main() { 

    char A = 'n'; 
    char B = 'y'; 
    char Answer; 


    printf("Does the subject have a glazed over look? (y/n): \n"); 
    scanf("%c",&Answer); 

    if (Answer=='N'||Answer=='y'|| Answer=='N'||Answer=='Y') 

     printf("Good\n"); 

    else 
       printf("Please enter 'y' or 'n' \n "); 


    return 0; 
} 
Verwandte Themen