2017-02-05 4 views
1

Так что я совершенно не привык к использованию в то время как петли и застрял здесь. Кто-нибудь сможет мне помочь в этом или указать мне в правильном направлении? Это часть более крупной программы, которую я пытаюсь создать. Спасибо за любую помощь!Что я здесь делаю неправильно? В то время как проблемы с циклом и символом

Предполагается продолжить запрос до ввода «q».

Код:

#include <stdio.h> 
int main(void) 
{ 
    int height, feet, inches; 
    char name[30]; 
    while (name!='q') 
    { 
     printf("Enter height and first name: "); 
     scanf("%d %s", &height, &name); 
     inches = height%12; 
     feet = height/12; 
     printf("%s's height is %d feet and %d inches.\n", name, feet, inches); 
    } 
    return 0; 
} 

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

+0

Вам совсем не нужна петля ... – Dai

+0

Вы задали высоту, а затем имя, и ожидаете высоту, а затем имя, но вы набрали высоту имени. Кроме того, поскольку Дай сказал, что вам не нужен цикл while. – Jerinaw

+0

Здесь нет петли. Это две строки кода, которые преобразуют дюймы в футы и дюймы, без необходимости петли. –

ответ

1

Заменить while (name!='q')while(name[0]!='q') с

Это будет работать нормально.

+0

По какой-то причине я немного смущен тем, что использует скобки с числом внутри, когда на самом деле определяют символьные переменные. Когда я меняю число вокруг, это, похоже, не меняет. Например, я подумал, что когда я использовал «char c [5]» для определения c, а затем использовал scanf для ввода строки для c, это ограничение 5 ограничило бы то, что я вводил всего 5 символов. Но, похоже, это не так. Или, может быть, я ужасно ошибаюсь. В любом случае, я отвлекаюсь. Я понял программу и получил ее работу. Спасибо за вашу помощь! –

+0

Ну, пожалуйста. Если бы мое предложение помогло, будьте любезны, чтобы поддержать его. – Pbd

2
while (name!='q'); 

Вы не можете сравнивать строки, как это в C. Вы должны использовать strcmp, например while (strcmp(name, "q")).

В какой книге вы читаете? Это часто подчеркивается в приличных книгах, в начале.

+0

Спасибо за вашу помощь! Вам и всем! Я получил это работает должным образом прошлой ночью незадолго после ваших полезных советов. –

+0

Вы не можете полагаться на советы людей в Интернете, так как не все из нас уважаемы в области обучения и программирования. – Sebivor

+0

Кто-нибудь есть или нет, некоторая помощь лучше, чем никто. Я хочу стать хорошо осведомленным в программировании на C и других языках, чтобы в конечном итоге я был достаточно авторитетным, чтобы отвечать на другие вопросы, а не всегда спрашивать их. –

 Смежные вопросы

  • Нет связанных вопросов^_^