//Program to Print Horizontal Histogram of Shape{*}
#include<"iostream">
using namespace std;
int main() {
int a[100],n,i,j;
cout<<"Enter Size of Array"<<endl;
cin>>n;
cout<<"Enter Array Elemnts"<<endl;
for(i=0;i<n;i++) {
cin>>a[i];
}
for(i=0;i<n;i++) {
for(j=0;j<a[i];j++) {
cout<<"* ";
}
cout<<endl;
}
}
此代码是在水平方向上打印直方图,但是我想在垂直方向上从下到上打印它。
答案 0 :(得分:1)
解决方案取决于列是否指向下方或上方。除此之外,解决方案是相似的:
外部循环遍历行。内部循环遍历列以及相应的数组元素。如果该值小于当前行,则打印一个实字符,否则打印一个空格。
对于必要的行数,必须知道数组中的最大值。对于向上指向的列,必须事先确定,因为它是外循环中迭代的起始值。
我的示例代码:
#include <iostream>
#include <vector>
#include <cmath>
int main()
{
int n = 10; // size of array
std::vector<int> a; // array elements
int maxA = 15;
for (int i = 0; i < n; ++i) a.push_back(rand() % maxA);
// print values
for (int value : a) std::cout << ' ' << value;
std::cout << '\n';
// determine max height of columns
maxA = 0;
for (int value : a) if (maxA < value) maxA = value;
// output maxA lines
for (; maxA > 0; --maxA) {
for (int value : a) std::cout << (value >= maxA ? " #" : " ");
std::cout << '\n';
}
// done
return 0;
}
输出:
13 1 12 10 8 10 1 12 9 1
#
# # #
# # #
# # # # #
# # # # # #
# # # # # # #
# # # # # # #
# # # # # # #
# # # # # # #
# # # # # # #
# # # # # # #
# # # # # # #
# # # # # # # # # #
答案 1 :(得分:0)
使用命名空间标准;
int main()
{
DEFAULT
}