Dieses Programm durchläuft bisher den Frequenzbereich 0-20000 Hz und druckt alle 50 Hz auf dem Bildschirm und stoppt dann, wenn es erreicht wird 20000 Hz. Es stoppt auch, wenn ich ein Steuerelement auf einer Bildschirm-Midi-Tastatur verschiebe.In C-Programmierung machen Sie eine Do-While-Schleife, um den Benutzer zu fragen, ob das Programm erneut ausgeführt werden soll
Nun, was ich versuche, ist es zu ändern, so dass, wenn es 2000 Hz erreicht hat, statt zu stoppen, gibt das Programm dem Benutzer eine Option, etwa wie "Möchten Sie dieses Programm erneut starten?" , und wenn der Benutzer 'Y' eingibt, wird es erneut gestartet, aber wenn der Benutzer 'N' eingibt, wird das Programm angehalten. Ich glaube ein do while
ist, was ich suche, aber ich habe versucht und kann einfach nicht scheinen, es zur Arbeit zu bringen.
Mein Code:
#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);
}
Sie haben nicht den Teil enthalten, wo Sie Eingabe sammeln und Y/N zurückgeben .. und versuchen Sie die Schleife .. um ehrlich zu sein, was Sie in der Schleife tun, ist im Grunde irrelevant. – BugFinder
yeah ive entfernt das, weil es überhaupt nicht funktionierte, ist die Frage, wie ich das tun kann. –
Nun, Sie haben bereits eine while-Schleife, also haben Sie die Grundlagen einer while-Schleife - es wäre einfacher, mit Ihrer nicht wirklich funktionierenden Schleife zu beginnen und zu beheben. – BugFinder