我为一个程序编写了我的代码,该程序找到了1到2000之间任何整数的素因子和不同的素因子。但是,现在我需要编写代码来循环程序并向用户询问另一个数字,直到用户我想停下来它看起来如下:
你想尝试另一个号码吗?说Y(es)或N(o):y //然后它会要求1到2000之间的数字,程序将运行。
你想尝试另一个号码吗?说Y(es)或N(o):n ---> “感谢您使用我的节目。再见!:
我曾尝试为此编写代码,但正如您所看到的那样,我最终陷入了代替代码的问题。我不知道如何循环它,所以程序将再次重复。这是我唯一觉得自己被困住的事情。我觉得我的代码下面这个问题是正确的,它只需要循环我不确定如何做的程序。希望你能帮忙。
int main() {
unsigned num;
char response;
printf("Please enter a positive integer greater than 1 and less than 2000:");
scanf("%d", &num);
if (num > 1 && num < 2000){
printf("The distinctive prime facters are given below: \n");
printDistinctPrimeFactors(num);
printf("All of the prime factors are given below: \n");
printPrimeFactors(num);
}
else {
printf("Sorry that number does not fall within the given range.\n");
}
printf("Do you want to try another number? Say Y(es) or N(o): \n");
response = getchar();
if(response == 'Y' || answer == 'y')
//then loop back through program
//else print "Good Bye!"
}
return 0;
}
答案 0 :(得分:1)
您希望在代码周围添加do {...} while(condition)
。条件是response =='y' || response =='Y'
。打印'再见',当你离开循环和你的好。像这样:
int main() {
char response;
do {
//your code
} while(response =='y' || response =='Y');
printf("Goodbye");
return 0;
}
这与常规while循环不同,因为它会在循环体首次运行后检查条件。
答案 1 :(得分:0)
基本思想是这样的:
char response = 'y';
do {
workSomeMagic();
response = getNextInput();
while ((response == 'y') || (response == 'Y'));
显然,workSomeMagic()
和getNextInput()
需要充实,但它们与手头的问题无关,即在某个条件成立时如何进行循环。
workSomeMagic()
基本上是您的数字输入和素数因子计算,而getNextInput()
则从用户检索字符。
我会谨慎使用getchar()
,因为如果输入“y”,您将在输入流和换行符中同时获得y
和<newline>
将导致下一次迭代退出。
最好使用基于行的输入函数,例如找到here的优秀函数。
答案 2 :(得分:0)
int main()
{
char response = 'y';
do {
/*
your
code
here
*/
printf("Do you want to try another number? Say Y(es) or N(o): \n");
response = getch();
} while ((response == 'y') || (response == 'Y'));
printf("Goodbye");
return 0;
}