问题 L: 乐乐做统计 11030
作者:互联网
问题 L: 乐乐做统计
时间限制: 1 Sec 内存限制: 128 MB
题目描述
乐乐最近迷上了统计学,他统计了某家公司股票近n天以来每天的价格情况。为了简化问题,我们假设股价都是非负整数。但是,乐乐觉得这样的数据并不够直观,于是他灵机一动,决定将这n天的股价画成条形统计图。现在他将这个问题交给了你。
输入
包含两行。
第一行包含一个正整数n(1≤n≤100),表示乐乐统计了n天的股价情况。
第二行包含n个非负整数,数据保证不超过1000,表示每一天的股价情况。
输出
包含2n-1列,为 n天股价的条形统计图,此处我们用来将统计图画出。每一个条形之间隔一个空列。
第2i-1列为对应第i天的股价情况,假设当天的股价为x,则该列应有x个。
注意除了文末以外不能有多余空行。特殊地,第一行至少要有1个*。
样例输入 Copy
5
3 5 2 7 4
样例输出 Copy
提示
总共有5天,每天对应的股价分别是3、5、2、7、4。输出文件共有9列, 偶数列为空列,奇数列为条形,对应有3、5、2、7、4个*。
第一次写出来的图案和其他的样例倒是过了,但是提交过不了,就很奇怪
#include<bits/stdc++.h>
using namespace std;
int b[300][300];
int main()
{
int n,a[300],i,j,x,cnt=0,max1=-1;
cin>>n;
for(i=0;i<n;i++)
{
cin>>x;
a[cnt]=x;
cnt+=2;
max1=max(max1,x);
}
int high=max1;
cnt=0;
for(i=0;i<=2*n-1;i++)
{
if(i%2)
{
for(j=0;j<high-a[cnt];j++)
{
b[i][j]=1;
}
cnt+=2;
}
else
{
for(j=0;j<high;j++)
{
b[i][j]=1;
}
}
}
for(j=0;j<high;j++)
{
for(i=1;i<=2*n-1;i++)
{
if(b[i][j])
{
cout<<" ";
}
else
{
cout<<"*";
}
}
cout<<endl;
}
}
看了同学的代码。我的问题还需要解决。
#include<bits/stdc++.h>
using namespace std;
int b[300][300],a[300];
int main()
{
int n,M=-1,i,j;
cin >> n;
for (i = 1; i <= n; i++)
{
cin >> a[i];
M = max(M, a[i]);
}
for(i = 0; i < M; i++)
{
for(j = 2; j <= n * 2; j++)
{
if(j%2)
{
cout << ' ';
continue;
}
if(i + a[j/2] < M )
{
cout << ' ';
continue;
}
cout << '*';
}
cout<<endl;
}
return 0;
}
标签:乐乐,cout,11030,int,cnt,cin,300,统计 来源: https://blog.csdn.net/Ustinian_1206/article/details/112584728