как построить гистограмму в c

как мне построить гистограмму в c из 2 массивов?

    Для гистограммы, выложенной на ее стороне …

    Я предлагаю использовать printf (“*”) для каждого приращения и printf (“\ n”), чтобы начать вывод новой строки. (Изменение ориентации – это упражнение для читателя).

    Подумав о проблеме немного, я не уверен, что «дубликат», который я идентифицировал в комментариях, действительно отзывчив. Поэтому я скажу несколько слов.

    Если вы решили использовать ASCII-подход к искусству, тогда у вас есть еще одно решение: вертикальные или горизонтальные бары. Горизонтальное легко: просто решите масштабирование, а затем распечатайте bin_contents*scale символы bin_contents*scale для каждого бункера. Ссылка на код-гольф действительно полезна как модель того, что делать, даже если это не хороший пример того, как ее писать.

    Однако во многих полях есть ожидание вертикальной полосы при представлении гистограмм. Это немного сложнее, но рассмотрим псевдокод

     sacle = find_scale(input_array) max_height = find_max(input_array) * scale for (i=max_height; i>=0; i--) if (some condition) print_in_N_digits(round(i/scale)) // to label the scale else print_in_N_digits() // lines with no labels print " |" // set up the vertical axis for (j=first_bin to lat_bin) if (input[j]*scale >= i) print("#") else print(" ") print_new_line print_in_N_digits(0) print(" +") for (j=first_bin to last_bin) print("-") print_new_line print_in_N_digits() print(" 0") for (j=first_bin to last_bin) if (some other condition) print_bin_label 

    Это просто просматривает страницу, используя столбец для каждого бункера и на каждом уровне печатает либо " " либо "#" для каждого столбца. Часть печати гистограммы действительно очень проста. Вся сложность возникает из-за управления осью и метками.

    Вы можете использовать искусство ascii для этого