Как программа должна быть написана? Я просто по этим заданиям пытаюсь ее исправить. Язык СИ

Нужно составить циклическую программу на основне оператора if. Для вычисления и вывода значений функции. Формула для вычисления заданной функции z и заданного диапазона значений аргументов x: z=cos(bx)/x, x=0,1,…10 . Параметра или b предварительно вводятся с клавиатуры. На печать выводятся только те значения z, величина которых превышает значение a. Цикл должен быть построен с помощью условного оператора if.

Как по этим заданиям можно составить программу правильно?
Ниже я составил по этим заданиям, но все равно не получилось. Как исправить? Язык СИ (C).

{
 
        system("cls");
        printf("Цикл вычисления значений математических функции по варианту 1 (оператор if), п.5.5\n");
 
        int b, k;
        float z, x;
 
        printf("Введите значение b:\n");
        scanf_s("%d", &b);
        x = 0.1;
        k = 1;
        z = cos((float)b * x) / x;
 
    metka:;
        if (x >= -0.1);
        {
            printf("   %d)z = % 3.3f при x = % 3.1f\n", k, z, x);
            x -= 0.1;
            k++;
            z = cos(b * x) / x;
            goto metka;
        }
        SWITCH = getchar();     //запрос символа с клавиатуры
        system("PAUSE");
        goto MENU;
        break;
    }

Так а что получилось, какой результат и что ожидалось?

Для начала.
После metka:; точка с запятой не ставится, после условия цикла также.
Не понятно зачем в цикле goto metka;. Или это попытка сделать бесконечный цикл, зачем?
if можно заменить на while, x присвоить 0, k присвоить 0,1 (переименовал бы k в step). Формулу вне цикла убрать, она там лишняя.
Цикл на подобие такого:

int b;
float z, x, step;
// some code
x = 0;
step = 0.1;
while (x <= 10)
{
    x = x + step;
    // some printf
    z = (cos(b * x)) / x;
}
return 0;

Там где // some code и // some printf вставляете то что считаете нужным…

Может в задании имели в виду это.

Действительно, упоминается условный оператор.
Тогда в принципе почти тоже самое:

    int b;
    double z;
    float x, step;
    
    x = 0;
    step = 0.1;
    
    printf("Enter value b:\n");
    scanf("%d", &b);

    if (b != 0)
    {
        for (int i = 0; x <= 10; i++)
        {
            x = x + step;
            z = (cos(b * x)) / x;
            printf("(Step %1.1f) z = %1f at x = %1.1f\n", step, z, x);
        }
    }
    else
    {
        printf("Invalid value b");
    }
return 0;

P. S.
Только нафига там нужен goto так и не понятно.

Ну может там хотели, чтоб цикл был сделан без готового оператора для цикла, а с гоуту как в асемблере и т.д.