gpt4 book ai didi

c - 如果用户没有输入正确的值,使 C 程序返回开始并再次要求输入

转载 作者:行者123 更新时间:2023-11-30 15:10:24 25 4
gpt4 key购买 nike

这是我在这里发表的第一篇文章,所以请对我温柔一点。我最近在大学开设了 C 编程类(class),我对此非常感兴趣。由于我正在处理音频(混合/母带音乐),因此我决定尝试制作一个简单的程序,该程序可以计算用户定义的 BPM(每分钟节拍)的延迟时间(以毫秒为单位)。

我目前遇到的问题如下:我希望程序返回到开头,并要求用户在输入错误的 BPM(本例中为 0)时再次输入。

我尝试了 do while 循环,但是它工作得不太正确,我的程序仍然会计算所有内容,就好像用户刚刚输入 0 一样,如果我输入了正确的值,它就会循环永无休止。

如果我执行 if else 语句,它会向用户显示一条消息,但我想提示用户再次输入该消息。

我知道这是一个非常简单和基本的问题,但我们将不胜感激任何帮助。

这是迄今为止我的代码:

int main(){

float BPM;

printf("Please input the BPM: ");
scanf(" %f", &BPM);

do{

float HZ = 1000;
float HZ_Result;
float BPM_QuarterNote=(60/BPM)*1000;

float BPM_WholeNote=BPM_QuarterNote*4;
printf("\n\nDelay time for whole note is: %.2f ms or %.2f Hz", BPM_WholeNote, 1000/BPM_WholeNote);

float BPM_HalfNote=BPM_QuarterNote*2.0;
printf("\n\nDelay time for 1/2 note is: %.2f ms or %.2f Hz", BPM_HalfNote, 1000/BPM_HalfNote);

printf("\n\nDelay time for 1/4 note is: %.2f ms or %.2f Hz", BPM_QuarterNote, 1000/BPM_QuarterNote);

float BPM_EightNote=BPM_QuarterNote*0.5;
printf("\n\nDelay time for 1/8 note is: %.2f ms or %.2f Hz", BPM_EightNote, 1000/BPM_EightNote);

float BPM_SixteenthNote=BPM_QuarterNote*0.25;
printf("\n\nDelay time for 1/16 note is: %.2f ms or %.2f Hz", BPM_SixteenthNote, 1000/BPM_SixteenthNote);

float BPM_32ndNote=BPM_QuarterNote*0.125;
printf("\n\nDelay time for 1/32 note is: %.2f ms or %.2f Hz", BPM_32ndNote, 1000/BPM_32ndNote);


}while(BPM > 0);

return 0;
}

最佳答案

您可以使用 while 循环代替 if 来测试您的条件

例如

/* while loop execution */
while( BPM == 0 ) {
/* get my input values */
}

关于c - 如果用户没有输入正确的值,使 C 程序返回开始并再次要求输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36189305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com