2010-11-23 11 views
0

Bon après-midi, J'essaie d'accomplir une tâche que je sais devrait être faisable. Cependant, mes tentatives semblent échouer à chaque fois. Mon but est d'apprendre à coder en Objective -c et j'ai bien progressé. ce que je voudrais faire est d'ajouter une boucle à mon application actuelle qui demande à la fin si je voudrais courir encore ou quelque chose à cet égard, et répondre par oui ou non. si non le programme se termine et si oui, il revient en haut du projet pour recommencer à zéro. un peu comme ce que j'ai ci-dessous? excusez-moi s'il vous plaît si ce n'est pas tout à fait parfait, im encore s'habituer à la programmation et je trouve cela incroyablement amusant.boucle sur invite avec un oui ou non?

#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

Pourquoi cela a '-c' objectif en tant que tag? Cela ressemble à du code C. –

Répondre

1

Les fonctions printf et scanf doivent être déplacées à l'intérieur des accolades de la boucle while. Aussi, vous voulez \ n au lieu de/n dans le printf. Enfin, vous allez récupérer une chaîne avec cet appel scanf(), donc vous aurez besoin de déclarer loop en tant que tableau char, puis dans la boucle while, vérifiez le premier élément de ce tableau pour un 'y' ou 'n' ou quelque chose comme ça. Vous pouvez également regarder getchar() au lieu de scanf() pour ce genre de chose.

1

Non compilé, mais devrait travail:

#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); 

} 

on ne ferait pas quelque chose comme ça dans une application réelle, mais à des fins de démonstration, il devrait être ok.

J'ai fait de votre variable un tableau, car les chaînes sont des tableaux de caractères en C. La longueur est fixée à 256 octets (255 caractères + 0 octet comme délimiteur). J'ai changé la boucle à do-while pour la faire fonctionner au moins une fois. Pour la comparaison de chaînes, vous devez appeler une fonction. strcmp renvoie 0 pour les chaînes identiques. Enfin, la question appartient dans la boucle.

Il est clair que C, en n'utilisant rien d'Objective-C.

-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

En général, utiliser goto est un mauvais comportement, car il est difficile à lire pour les humains. Pouvez-vous suggérer un moyen de contourner cela? – LeeNeverGup

+0

Vraiment? Je vois 'goto X' et tu sais ce que mes yeux font? Ils "goto x". Essayez de le faire avec des instructions fictives imbriquées 'do ... while (0)' et 'break' partout.' ' –

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; 
}