Лишние нули при выводе целых чисел - C (СИ)
Формулировка задачи:
Как решить проблему я к сожалению не нашел в интернете.
Суть в том, что в консоль при выводе float целое число, например 5, выводиться как 5,0000000
И числа такие как 5,25 выводятся 5,2500000
Как это решить?
Код у меня такой:
float a,b,c,x;
int x1,x2,dx,i;
float func(float aa, float bb, float cc, int xx)
{
if (((aa*xx)==0)||(xx==0)||((cc-4)==0))
{
return -6000;
}
else
{
if ( ((xx+5<0) && (cc==0) ) || ( (xx+5>0) && (cc!=0)) )
{
if ((xx+5<0)&&(cc==0)) return ((1/aa*xx)-bb);
if ((xx+5>0)&&(cc!=0)) return ((xx-aa)/xx);
}
else
{
return ((10*xx)/(cc-4));
}
}
}
void main()
{
for (int i=x1;i<=x2;i=i+dx)
{
x=func(a,b,c,i);
if (x==-6000) printf("F(%i) = error\n", i); else printf("F(%i) = %f\n", i, x);
}
}Решение задачи: «Лишние нули при выводе целых чисел»
textual
Листинг программы
printf("F(%i) = %g\n", i, x);
Объяснение кода листинга программы
Код представлен одним предложением и выполняет следующие действия:
- Выводит значение переменной
iв форматеF(%i) = %.2g\n. F- это спецификатор формата для функции printf, который указывает как следует форматировать вывод.i- это переменная, значение которой будет выводиться на экран.x- это переменная, значение которой будет выводиться на экран.%.2g- это спецификатор формата, который указывает на то, что число должно быть выведено в научной нотации с двумя знаками после запятой.\n- это символ новой строки, который указывает на то, что вывод должен быть перенесен на новую строку.