цикл по подсказке с да или нет? - PullRequest
0 голосов
/ 23 ноября 2010

Добрый день, Я пытаюсь выполнить задачу, которая, как я знаю, должна быть выполнима. однако мои попытки кажутся неудачными каждый раз. Я стараюсь научиться кодировать в Objective -c и добился хорошего прогресса. то, что я хотел бы сделать, это добавить цикл к моему текущему приложению, который спрашивает в конце, хочу ли я запустить снова или что-то в этом отношении, и отвечаю да или нет. если нет, программа завершается, и если да, она возвращается к началу проекта, чтобы начать все сначала. вроде как у меня ниже? простите, пожалуйста, если это не совсем идеально, я все еще привыкаю к ​​программированию, и я нахожу это невероятно забавным.

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

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

Ответы [ 4 ]

1 голос
/ 23 ноября 2010

Здесь не скомпилировано, но должно работать:

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

}

В реальном приложении ничего подобного не будет, но для демонстрационных целей все должно быть в порядке.1006 *

Я сделал вашу переменную массивом, потому что строки - это массивы символов в C. Длина установлена ​​в 256 байтов (255 символов + 0 байт в качестве разделителя).Я изменил цикл на do-while, чтобы он запускался хотя бы один раз.Для сравнения строк вам нужно вызвать функцию.strcmp возвращает 0 для идентичных строк.Наконец, вопрос принадлежит в цикле.

Это просто C, хотя и не использует ничего из Objective-C.

1 голос
/ 23 ноября 2010

printf и scanf должны быть перемещены вверх внутри фигурных скобок цикла while.Кроме того, вы хотите \ n вместо / n в printf.Наконец, вы вернете строку с этим вызовом scanf (), поэтому вы захотите объявить цикл как массив символов, а затем в цикле while проверить первый элемент этого массива на «y».или 'n' или что-то в этом роде.Вы могли бы также хотеть смотреть на getchar () вместо scanf () для такого рода вещи.

0 голосов
/ 27 января 2014
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;
}
0 голосов
/ 30 сентября 2012
#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:
 }
...