如何将 For 循环与 char 一起使用?

Posted

技术标签:

【中文标题】如何将 For 循环与 char 一起使用?【英文标题】:How to use For loop with char? 【发布时间】:2015-07-03 18:19:53 【问题描述】:

通过使用 for 循环。我想让用户输入他们想要订购的柠檬水量。然后我的程序将计算税收、小计和总计。之后应该让他们通过输入“y”或“n”继续。

当我编译这些代码时。我得到的都是空白。我的代码有什么问题?

所以我做了一些改变。但是,如果他们要求继续,我不知道如果我输入“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");

【问题讨论】:

您希望先输入一些符号,然后您才会询问杯子的数量 与您的问题无关,但请注意您应该使用int main() 而不是void main()。此外,fflush(stdin) 是未定义的行为。 (这可能与您的问题有关。)另外,请发布一个可编译的示例,明确说明预期输出和实际输出。 @ace 我做了一些改变。 count 的意义何在?除了递增(没有明显原因?)之外,我没有看到它在任何地方使用过。为什么不只使用一个while循环?我认为它更适合您的程序。 @digitalninja 任务是使用 for 循环。 【参考方案1】:

试试这个:

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

此更改将让您仅在使用 y 字符时继续。

【讨论】:

【参考方案2】:
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);

【讨论】:

以上是关于如何将 For 循环与 char 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何将链式 Promise 与数组的 for 循环一起使用?

为啥将 np.concatenate 与 for 循环和列表理解一起使用的结果不一样?

如何将两个for循环嵌套使用,要求内层循环结束,外层也一起结束。

如何让 C++0x / C++11 风格的基于范围的 for 循环与 clang 一起使用?

如何在节点 js 中正确使用等待/异步与 for 循环

如何使 C++ 中的 for each 循环函数与自定义类一起使用