이 프로그램은 지금까지 주파수 범위 0-20000 Hz를 스윕하고 화면에 50 Hz마다 인쇄 한 다음 도달하면 멈 춥니 다 20000 Hz. 또한 화면의 미디 키보드에서 컨트롤을 움직이면 중지됩니다.C 프로그래밍에서 Do-While 루프를 만들어 사용자가 프로그램을 다시 실행하길 원한다면
이제는 2000Hz에 이르렀을 때 멈추지 않고 "이 프로그램을 다시 시작 하시겠습니까?"와 같은 옵션을 사용자에게 제공하도록 수정하려고합니다. 사용자가 '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);
}
입력을 수집하고 Y/N을 반환하는 부분은 포함시키지 말고 루프를 시도하십시오. 솔직히 말하면 루프에서 수행하는 작업은 기본적으로 부적합한 작업입니다. – BugFinder
그래, 그냥 작동하지 않았기 때문에 ive 제거, 질문은 내가 어떻게 할 수 있는지 묻습니다. –
음, 이미 while 회 돌이를 가지고 있으므로 while 회 돌이의 기초가 있습니다. 실제 작업 루프가 아닌 작업을 시작하는 것이 더 쉬울 것입니다. – BugFinder