2015-04-25 101 views
2
  • 通過使用for循環。我想讓用戶輸入他們想要訂購的檸檬水的數量。然後我的程序將計算稅額,小計和總額。應該讓它們繼續輸入'y'或'n'。如何使用For循環與char?

  • 當我編譯這些代碼。我得到的只是空白。我的代碼有什麼問題?

所以我做了一些改變。但是如果我們輸入'n',如果他們要求繼續,我不知道如何停止該程序。

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

void main() 
{ 
    int NumCups; 
    float SubTot, Tot = 0, Tax; 
    char more; 

    printf("Enter the number of cups:"); 
    scanf("%d", &NumCups); 
    SubTot = NumCups*1.29; 
    Tax = SubTot*0.0825; 
    Tot = SubTot + Tax; 

    printf("Subtotal:%0.2f\nTax:%0.2f\nTotal:%0.2f\n", SubTot, Tax, Tot); 
    fflush(stdin); 
    printf("Thank you.\nWould you like to order more lemonade?\n"); 

    for (; scanf("%c", &more);) 
    { 
     printf("Enter the number of cups:"); 
     scanf("%d", &NumCups); 

     SubTot = NumCups*1.29; 
     Tax = SubTot*0.0825; 
     Tot += SubTot + Tax; 
     fflush(stdin); 
     printf("Subtotal:%0.2f\nTax:%0.2f\nTotal:%0.2f\n", SubTot, Tax, Tot); 
     printf("Thank you.\nWould you like to order more lemonade?\n"); 
    } 
    system("pause"); 
} 
+0

你期待的一些符號應該是進入第一隻那麼你會問杯 –

+1

不相關的問題的數量,但是請注意,你應該使用'INT主要()的''而不是無效的主要()'。另外,'fflush(stdin)'是未定義的行爲。 (這可能與您的問題有關。)另外,請發佈一個可編輯的示例,明確說明預期的輸出和實際輸出。 – ace

+0

@ace我做了一些改變。 – TheEWL2

回答

1

試試這個:

for (; scanf("%c", &more)&&more=='y';) 

這一變化將讓你只有當你使用Y字符繼續。

0
do { 
    printf("Enter the number of cups:"); 
    scanf("%d", &NumCups); 

    SubTot = NumCups*1.29; 
    Tax = SubTot*0.0825; 
    Tot += SubTot + Tax; 
    fflush(stdin); 
    printf("Subtotal:%0.2f\nTax:%0.2f\nTotal:%0.2f\n", SubTot, Tax, Tot); 
    printf("Thank you.\nWould you like to order more lemonade?\n"); 
} while(1 == scanf(" %c", &more) && 'y' == more);