尝试在C中做一个验证答案的是或否问题循环

yk9xbfzb  于 2023-03-29  发布在  其他
关注(0)|答案(1)|浏览(89)

我在当地的大学里上了一门C编程课,我们正在着手一些更大的程序。我正在把程序分解成几个部分,这样更容易管理。目前,我正在尝试使用是/否循环来获取用户对一揽子交易的输入,然后验证用户选择的交易是否是他们实际想要的。t用户想要什么,它会重复自己,直到用户输入'Y',然后从那里开始,如果我找到一种方法,让它做循环,程序只是一遍又一遍地显示所有的printf函数,没有退出循环或更多的用户输入,有什么想法吗?

#include <stdio.h>

int main()
{
char package_choice;
char package_verify;

do
{
printf("Which package would you like to select? ");
scanf("%c", &package_choice);

printf("You chose %c, correct?\n", package_choice);
printf("Y/N\n");

scanf(" %c", &package_verify);
}while(package_verify != 'Y' && package_verify == 'N');

printf("You chose package %c.", package_choice);
}

我已经尝试了很多次重新输入do... while循环的工作原理,但我从来没有得到我想要的结果。是否有其他方法可以解决这个问题,或者我错过了什么?

hmtdttj4

hmtdttj41#

1.我会从适当的格式开始,这样一切都容易些
1.第一个scanf也必须去掉换行符(第一次迭代不需要,但下一次迭代需要)
1.检查Y就足够了
1.用户也可以输入小写字母

int main(void)
{
    char package_choice;
    char package_verify;

    do
    {
        printf("Which package would you like to select? ");
        scanf(" %c", &package_choice);

        printf("You chose %c, correct?\n", package_choice);
        printf("Y/N\n");

        scanf(" %c", &package_verify);
    }while(toupper((unsigned char)package_verify) != 'Y');

    printf("You chose package %c.\n", package_choice);
}

https://godbolt.org/z/jffhnbG7W

相关问题