gpt4 book ai didi

c - 在 C 编程中制作一个 Do-While 循环来询问用户是否希望程序再次运行

转载 作者:太空宇宙 更新时间:2023-11-04 05:23:48 27 4
gpt4 key购买 nike

到目前为止,该程序扫过 0-20000 Hz 的频率范围并在屏幕上每 50 Hz 打印一次,然后在达到 20000 Hz 时停止。如果我在屏幕上的 MIDI 键盘上移动控件,它也会停止。

现在我要做的是修改它,当它达到 2000 Hz 时,程序不会停止,而是给用户一个选项,比如“你想再次启动这个程序吗?”,如果用户键入“Y”,程序将重新开始,但如果用户键入“N”,程序将停止。我相信 do while 是我正在寻找的,但我已经尝试过但似乎无法让它工作。

我的代码:

#include "aservelibs/aservelib.h"
#include <stdio.h>
#include <math.h>

int main()
{
int frequency = 0.0;
int modulation = aserveGetControl(1);

printf("aserve get note control is %d\n", modulation);

do
{
while( frequency < 20000.0 && modulation == 0)
{
modulation = aserveGetControl(1);
aserveOscillator(0,frequency,1.0,0);
printf("The frequency is: %dHz\n", frequency);
frequency = frequency + 50.0;
aserveSleep(20);
}

char userInput;
printf("enter 'y' if you would like to repeat: ");
scanf(" %c", &userInput);
while(userInput == 'y');
}

return(0);
}

最佳答案

你的概念是正确的,但你只是错过了 do while 循环的语法。

应该是

do {

} while(condition);

所以,修改后的代码将是

#include "aservelibs/aservelib.h"
#include <stdio.h>
#include <math.h>

int main()
{
int frequency = 0.0;
int modulation = aserveGetControl(1);
printf("aserve get note control is %d\n", modulation);
char userInput;

do
{
while( frequency < 20000.0 && modulation == 0)
{
modulation = aserveGetControl(1);
aserveOscillator(0,frequency,1.0,0);
printf("The frequency is: %dHz\n", frequency);
frequency = frequency + 50.0;
aserveSleep(20);
}

printf("enter 'y' if you would like to repeat: ");
scanf(" %c", &userInput);
} while(userInput == 'y');

return(0);
}

关于c - 在 C 编程中制作一个 Do-While 循环来询问用户是否希望程序再次运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43091739/

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