2016-03-13 7 views
-4

Я ученик 1-го курса Computer Science, в настоящее время занимаюсь программированием. Мы изучаем язык программирования C, и мне трудно понять, как правильно ввести цикл в конце моего кода, чтобы спросить пользователя, хотят ли они продолжить или нет.В программировании на языке C Как использовать цикл, чтобы спросить пользователя, хотят ли они продолжить?

В этом простом задании предлагается разработать программу, которая будет определять общую оплату труда сотрудника (в том числе инструкцию «if» для определения сверхурочной работы). Как вы увидите в моем коде, я думаю, что я сделал это правильно. В присваивании указывается, что в конце моей программы я должен использовать цикл, чтобы спросить пользователя, хотят ли они продолжить.

В классе мы перешли на «Петли» и «Пока», но я немного потерял, как правильно реализовать эту функцию.

Первоначально я пытался сделать что-то вроде ...

printf("Would you like to continue? (1 = Yes, 2 = No) \n"); 
scanf("%i", _____); While (_____ == 'y' || ______ == 'Y') { 
} 

Но не уверен, что объявлять для ввода (Scanf) или что положить в то время цикла. Пожалуйста помоги. Его весенний перерыв, и нет университетских репетиций. Благодаря!

Вот мой код:

#include <stdio.h> 
#include <stdlib.h> 

int main() { 
    double totalHours, rate, grossPay, overTime, overTimepay, otHours, grossPaywithOT; 

    //1. I began by asking user for total hours & getting input 
    printf("Enter your total hours worked : \n"); 
    scanf("%lf", &totalHours); 

    //Now I'm using a selection statement to determine pay for overtime hours 
    if (totalHours > 40) { 
     //a. Inform user they have overtime hours 
     printf("You worked over 40 hours this period. \n"); 

     //b. Ask how many hours over 40 they worked 
     printf("How many hours over 40 did you work? : \n"); 
     scanf("%lf", &otHours); 

     //c. Ask the user for hourly rate 
     printf("What is your hourly rate? : \n"); 
     scanf("%lf", &rate); 

     //d. Overtime Rate Calculation & Gross Pay Calculation 
     grossPay = totalHours * rate; 
     overTime = 1.5 * rate; 
     overTimepay = otHours * overTime; 
     grossPaywithOT = overTimepay + grossPay; 

     //e. Display overtime pay and Gross Pay 
     printf("Your overtime pay is %.02lf \n", overTimepay); 
     printf("Your total Gross Pay including overtime is %.02lf \n", grossPaywithOT); 
    } else { 
     //2. Ask the user for hourly rate 
     printf("What is your hourly rate? : \n"); 

     //3. User input for hourly rate 
     scanf("%lf", &rate); 

     //4. Gross Pay Calculation 
     grossPay = totalHours * rate; 

     //5. Display grossPay 
     printf("Your Gross Pay is %.02lf \n", grossPay); 
    } 
} 
+0

Е ("Вы хотите продолжить (1 = Да, 2 = Нет) \ n "); scanf ("% i ", _____); while (_____ == 'y' || ______ == 'Y') {// logic printf (« Хотели бы вы продолжить ? (1 = Да, 2 = Нет) \ n "); scanf ("% i ", _____);}. Вам нужно спросить, хочет ли пользователь продолжить повторение во время цикла или вы будете застревать в бесконечном Надеюсь, что поможет – simon1230756

ответ

1

я бы:.?

char loop='y'; 
while(loop == 'y') { 

    //Do your stuff here 

    printf("do you want to loop? (y/n) "); 
    scanf(" %c", &loop); 
    if(loop != 'y') 
     loop='n'; 
} 

/A

+0

Спасибо! Это помогло кучу. –

0
do 
{ 
    // loop until they decide to stop 

    // put the code to do your normal stuff here 

    int i = 0; 
    do 
    { 
     // loop until they input a 1 or 2 
     printf("\nWould you like to continue? (1 = Yes, 2 = No) \n"); 
     scanf("%i", &i); 
    } while ((i != 1) && (i != 2)); 

} while (i == 1); 
0

scanf() не запишет в переменные, но в адреса памяти. Итак, в коде _____ вы должны написать указатель на адрес памяти. Несколько примеров:

int * intPointer; 
scanf("%i", intPointer); 

Или:

int integer; 
scanf("%i", &integer); 

Обратите внимание, что вы набрали "%i" в строке форматирования. %i сообщает scanf(), что строка, введенная пользователем, должна анализироваться как целое число. Вы хотите прочитать его как персонажа. функции C форматирования (это то, что окончательный е в scanf() означает использование %c для персонажей

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