Я закончил с длительностью и is_rest, но не могу понять, что не так с моим частотным кодом.Я в основном сделал три шага;1) Определяется по strlen для дифференциации случайных и нормальных.2) Определяется клавиша пианино (первая буква).3) Затем определили октаву и проследили до конца.Я повторил это для всех 7 букв на октаву.Теперь, когда я запускаю программу, я получаю один и тот же ответ для всех, будь то случайный или обычный, то есть для A4 и A6 возвращается одинаковое значение -2147483648 .Я потратил много времени на ее решение, но безрезультатно.Может кто-нибудь, пожалуйста, просмотрите мой код и скажите, что не так.
int frequency(string note)
{
int a, b, c, d, e, f, g, n, o, p, q, r;
double freq = 440;
// TODO
//if note is XY
if (strlen (note) == 2)
{
if (note[0] == 'A')
{
a = note[1];
if (a < 4)
{
return round ( freq / pow(2,(4 - a)));
}
if (a > 4)
{
return round ( freq * pow(2, (a - 4)));
}
else if (a == 4)
{
return 440;
}
}