C中的垂直直方图

时间:2014-09-21 06:06:46

标签: c loops histogram

我的任务是编写一个C程序,该程序从用户那里获取4个数字并垂直打印出相应的直方图(彼此相邻的列)。

实施例: A = 5 B = 3 C = 1 D = 0

输出:

x  
x     
xx   
xx   
xxx  
ABCD

我不允许使用数组或simpleio以外的任何东西。

我理解我需要考虑行,而不是列,并且我的起点应该是具有最高金额的行,并且一旦启动它就会继续打印。

除此之外,我只是在寻找某种起点或暗示如何正确思考这一点。任何帮助是极大的赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

#include <stdio.h>

#define print(VAR) (i<=VAR ? 'x' : ' ')

int main(void){
    int A=5, B=3, C=1, D=0;
    int MAX = 5;//int MAX=0;scanf("%d", &A); if(A>MAX) MAX=A;...
    int i;
    for(i=MAX;i>0;i--)
        printf("%c%c%c%c\n", print(A), print(B), print(C), print(D));
    printf("ABCD\n");
    return 0;
}