繁体   English   中英

垂直直方图打印问题

[英]Vertical Histogram Printing Issue

for (a = 0; a < 9; a++)
{
    if (hm <= arr[a]) //hm is Maximum number in array for height of a column.
        hm = arr[a];
}
for (i = hm; i >= 0; i--)
{
    for(t = 0; t < width; t++) //Width is where i got in trouble.
    { 
        printf("|");
        for (a = 0; a < 9; ++a)
        { 
            if (arr[a] > i)
            {       
                printf("*|");
            }
            else
            {
                printf(" |");
            }
        }
        printf("\n");
    }
}

所以我现在有了这段代码。 我从用户那里得到9个数字输入,并将其转换为垂直直方图。 例如,当用户输入1-2-2-4 -....并将宽度输入为3时; 输出为:

  | |*|         //Prints "width" as height.
  | |*|
  | |*|
  |*|*|
  |*|*|
  |*|*|.....

我希望它像:

  |   |   |
  |   |   |
  |   |***|
  |***|***|.....
    1   2

有什么办法可以通过我的代码实现此输出? 对不起,如果我不清楚,我不会说英语。 我还是C编程的新手,仍在尝试了解其行为。 谢谢 !

该代码按您所说的工作

for (int a = 0; a < 9; a++) {
    if (hm <= arr[a]) //hm is Maximum number in array for height of a column.
        hm = arr[a];
}
for (int i = hm; i >= 0; i--) {
    printf("|");
    //for(int t = 0; t < width; t++){ //Width is where i got in trouble.
        //printf("|");
        for (int a = 0; a < 9; ++a) {
            if (arr[a] > i) {
                for(int t = 0; t < width; t++){ //Here where you should have added the for loop
                    printf("*");
                }
                //printf("*|");
                printf("|");
            }
            else{
                for(int t = 0; t < width; t++){ //Here where you should have added the for loop
                    printf(" ");
                }
                printf("|");
                //printf(" |");
            }
        }
        printf("\n");
    //}
}
return 0;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM