我的任务是编写一个C程序,该程序从用户那里获取4个数字并垂直打印出相应的直方图(彼此相邻的列)。
实施例: A = 5 B = 3 C = 1 D = 0
输出:
x
x
xx
xx
xxx
ABCD
我不允许使用数组或simpleio以外的任何东西。
我理解我需要考虑行,而不是列,并且我的起点应该是具有最高金额的行,并且一旦启动它就会继续打印。
除此之外,我只是在寻找某种起点或暗示如何正确思考这一点。任何帮助是极大的赞赏。谢谢!
答案 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;
}