Предусловие-цикл-постусловие - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Хочу обратиться к Вам за помощью. Нужно решить задачу. Дано Е Нужно найти первое n при котором аn будет меньше Е по формуле an=1\n^2 (n - натуральное) n вывести на экран. С предусловием и постусловием. Я пишу под Linux-ом и виндовые библиотеки не использую.
//То, что [S]получилось[/S]
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
void scan(float a, double n, float E)
{
    for (n; n<=100; n++)
    {
        if (E<=1)
        {
            a=1/(pow(n,2));
 
            return 1;
        }
        else
        {
            printf("Ответ: %f", &n);
        }
    }
 
}
 
int main()
{
    int n;
    float a,E;
 
    n=0;
 
    printf("Введите число E\n");
    scanf("%f",&E);
 
    if (E==0)
    {
        printf("Ответ: 0");
    }
    else
    {
        scan (a,n,E);
//        printf("Ответ: %f", &n-1);
    }
 
}
P.S. Пока знаю только два цикла и не знаю какой использовать...

Решение задачи: «Предусловие-цикл-постусловие»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
void scan(int* n, float E)
{
    float a = 0.0f;
 
    if (E<=1)
    {
        do
        {
            a=1/(float)((*n)*(*n));
            ++(*n);
        }
        while (a >= E);
    }
    else
    {
        printf("Вы ввели неверное число \n");
        exit(EOF);
        return 0;
    }
}
 
 
 
int main()
{
    int n;
    float E;
 
    n=0;
 
    printf("Введите число меньше единицы E\n");
    scanf("%f",&E);
 
    if (E==0)
    {
        printf("Ответ: 0");
    }
    else
    {
        scan (&n,E);
        printf("Ответ: %d\n", n-1);
    }
 
}

Объяснение кода листинга программы

  1. В функции scan происходит следующая последовательность действий:
    • Переменная a инициализируется значением 0.0f.
    • Если E меньше или равно 1, то выполняется цикл do, в котором:
      • Вычисляется значение a по формуле 1/(float)((*n)*(*n)) (предположительно, это вычисление квадратного корня).
      • Значение n увеличивается на 1.
    • Цикл выполняется до тех пор, пока a не станет меньше E.
    • Если условие E<=1 не выполняется, то выводится сообщение об ошибке и программа завершается.
    • Возвращается значение 0.
  2. В функции main происходит следующая последовательность действий:
    • Переменные n и E инициализируются нулевыми значениями.
    • Пользователю предлагается ввести число E меньше 1.
    • Если E равно 0, то выводится сообщение Ответ: 0.
    • Если E не равно 0, то вызывается функция scan с аргументами n и E.
    • После выхода из функции scan выводится сообщение Ответ: n-1, где n - это значение, которое было передано в функцию scan.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.375 из 5
Похожие ответы