Графические кривые в тексте - PullRequest
1 голос
/ 24 марта 2020
#include <stdio.h>
#include <math.h>
void plotline (float y)
{
    char c='@';
    if (x==0.0)
        printf("%c\n",c);
    else if (x==1.0)
        printf("%41c\n",c);

}
void plot ()
{
    float y,x;
    for (x=0.0;x<=3.2;x+=0.2)
    {
        y=sin(x)*sin(x);
        plotline(y);
    }
}
void main()
{
    plot();
}

Я пытаюсь напечатать графическую c кривую греха ^ 2 (x), основываясь на некоторых заданных значениях на моем графике, но пока получаю этот вывод,

@
@
@
@
@
@
@
@
@
@
@
@
@
@
@
@

Я хочу, чтобы первый @ отображался на 0,0, а затем каждая сумма печатала еще один знак (@), чтобы он выглядел как кривая sin ^ 2 (x). В настоящее время я пытаюсь исправить это с помощью двумерного массива, но, похоже, он тоже не работает.

expected output
@
 @
      @
            @
                    @
                            @
                                  @
                                      @
                                       @
                                     @
                                 @
                          @
                  @
          @
    @
@

1 Ответ

1 голос
/ 24 марта 2020

Сравнение эквивалентности между поплавками сложно. x никогда не может быть точно 1.0. Также в качестве решения вы можете попробовать это

void plotline (float x)
{
    int n = x * 50;
    printf("%*c%c\n", n, ' ', '@'); 
}
...