Оформить код в виде функции - C (СИ)
Формулировка задачи:
Ребят помогите пожалуйста написать код в виде функции, никак не пойму как
#include <stdio.h>
#include <math.h>
int main()
{
int a;
int b;
int c;
float x;
float x0;
float x1;
float dx;
float f;
printf("Vvod a \t");
scanf("%d", &a);
printf("Vvod b \t");
scanf("%d", &b);
printf("Vvod c \t");
scanf("%d", &x);
printf("Vvod x0 \t");
scanf("%f", &x0);
printf("Vvod x1 \t");
scanf("%f", &x1);
printf("Vvod dx \t");
scanf("%f", &dx);
for (x = x0; x <= x1; x += dx)
{
if(x < 0 && b != 0)
{
f = a * x*x + b;
printf("Result \t %f", f);
}
if(x > 0 && b ==0)
{
f = (x - a) / (x - b);
printf("Result \t %f", f);
}
else
if(c != 0)
{
f = x / c;
printf("Result \t %f", f);
}
else
printf("Na nol nelzya delit \t");
}
}
return 0;
}Решение задачи: «Оформить код в виде функции»
textual
Листинг программы
#include <stdio.h>
void
read_int(char *name, int *to)
{
printf("type int '%s': ", name);
scanf("%d", to);
}
void
read_float(char *name, float *to)
{
printf("type float '%s': ", name);
scanf("%f", to);
}
void
func(int a, int b, int c, float x0, float xn, float dx)
{
float x;
double f;
for (x = x0; x <= xn; x += dx) {
if (x < 0 && b != 0)
f = a*x*x + b;
else if (x > 0 && b == 0)
f = (x - a) / x;
else if (c != 0)
f = x / c;
else {
printf("division by zero ('c')\n");
continue;
}
printf("result (x = %.2f): %f\n", x, f);
}
}
int
main(void)
{
int a, b, c;
float x0, xn, dx;
read_int("a", &a);
read_int("b", &b);
read_int("c", &c);
read_float("x0", &x0);
read_float("xn", &xn);
read_float("dx", &dx);
func(a, b, c, x0, xn, dx);
return 0;
}
Объяснение кода листинга программы
- Объединение всех необходимых библиотек и стандартных вхожих функций в единый исполняемый файл.
- В функции
mainсчитываются значения переменныхa,b,c,x0,xn,dxс помощью функцииread_intиread_float. - В функции
funcвычисляется функцияfдля каждого значенияxв заданном диапазоне. - Если значение
xменьше нуля иbне равно нулю, то вычисляется значениеfкакa*x*x + b. - Если значение
xбольше нуля иbравно нулю, то вычисляется значениеfкак(x - a) / x. - Если значение
cне равно нулю, то вычисляется значениеfкакx / c. - Если значение
cравно нулю, то выводится сообщение об ошибкеdivision by zero ('c')и выполнение цикла продолжается. - Для каждого значения
xвыводится результат вычисленияf. - Функция
mainзавершается возвратом значения 0, что указывает на успешное выполнение программы.