Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вылетает ошибка error: a label can only be part of a statement and a declaration is not a statement

MagicS1awe Ученик (127), на голосовании 6 дней назад
код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void resh(int choice)
{
double res = 0, x = 0;
int n = 1;
switch(choice)
{
case 1:
int accur;
printf("Введите количество знаков после запятой\n");
scanf("%d", &accur);
printf("Считаем 1/(1-x)\n");
printf("x = \n");
scanf("%lf", &x);
do
{
res += pow(x,n);
n+=1;
}
while (pow(x,n-1) > pow(10, -accur));
printf("результат = %.*f\n", accur, res);
break;
case 2:
int povtor;
printf("Введите количество повторений\n");
scanf("%d",&povtor);
printf("Считаем 1/(1-x)\n");
scanf("%lf", &x);
for (int k = 1; k <= povtor; k++)
{
res += pow(x,k);
}
printf("Результат = %lf\n", res);
break;
default:
printf("Как ты сюда попал?");
break;

}
printf("Значение функции = %lf\n", 1/(1-x));
}

int main()
{
int choice;
do
{
printf("Выбиреите способ вычисления\n 1) С заданной точностью\n 2) С заданным количеством\n");
scanf("%d",&choice);
if (choice == 1 || choice == 2)
{
break;
}
printf("Нет в заданном выборе. Повторите ввод\n");
}
while(1);
resh(choice);
return 0;
}
здесь при запуске в visual studio code с gcc компилятором выдаёт это:

когда как при использовании онлайн языка C в инете такой ошибки не наблюдается, в чём загвоздка?
Голосование за лучший ответ
Матвей Козлов Профи (846) 1 месяц назад
  • #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>

    void resh(int choice)
    {
    double res = 0, x = 0;
    int n = 1, accur, povtor;

    switch(choice)
    {
    case 1:
    printf("Введите количество знаков после запятойn");
    scanf("%d", &accur);
    printf("Считаем 1/(1-x)n");
    printf("x = n");
    scanf("%lf", &x);
    do
    {
    res += pow(x,n);
    n+=1;
    }
    while (pow(x,n-1) > pow(10, -accur));
    printf("результат = %.*fn", accur, res);
    break;
    case 2:
    printf("Введите количество повторенийn");
    scanf("%d",&povtor);
    printf("Считаем 1/(1-x)n");
    scanf("%lf", &x);
    for (int k = 1; k <= povtor; k++)
    {
    res += pow(x,k);
    }
    printf("Результат = %lfn", res);
    break;
    default:
    printf("Как ты сюда попал?");
    break;
    }
    printf("Значение функции = %lfn", 1/(1-x));
    }

    int main()
    {
    int choice;
    do
    {
    printf("Выбиреите способ вычисленияn 1) С заданной точностьюn 2) С заданным количествомn");
    scanf("%d",&choice);
    if (choice == 1 || choice == 2)
    {
    break;
    }
    printf("Нет в заданном выборе. Повторите вводn");
    }
    while(1);
    resh(choice);
    return 0;
    }
S.H.I. Оракул (68516) 1 месяц назад
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void resh(int choice)
{
double res = 0, x = 0;
int n = 1;
// Объявляем все переменные в начале функции
int accur, povtor;

switch(choice)
{
case 1:
printf("Введите количество знаков после запятой\n");
scanf("%d", &accur);
printf("Считаем 1/(1-x)\n");
printf("x = \n");
scanf("%lf", &x);
do
{
res += pow(x,n);
n+=1;
}
while (pow(x,n-1) > pow(10, -accur));
printf("результат = %.*f\n", accur, res);
break;
case 2:
printf("Введите количество повторений\n");
scanf("%d",&povtor);
printf("Считаем 1/(1-x)\n");
scanf("%lf", &x);
for (int k = 1; k <= povtor; k++)
{
res += pow(x,k);
}
printf("Результат = %lf\n", res);
break;
default:
printf("Как ты сюда попал?");
break;
}
printf("Значение функции = %lf\n", 1/(1-x));
}

int main()
{
int choice;
do
{
printf("Выбиреите способ вычисления\n 1) С заданной точностью\n 2) С заданным количеством\n");
scanf("%d",&choice);
if (choice == 1 || choice == 2)
{
break;
}
printf("Нет в заданном выборе. Повторите ввод\n");
}
while(1);
resh(choice);
return 0;
}
Похожие вопросы