| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 694 人关注过本帖
标题:柱状图~
只看楼主 加入收藏
black0fish
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2006-9-5
收藏
 问题点数:0 回复次数:1 
柱状图~

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

main()
{
int *p,n=0,i,j;
char t;
char q[11][20]={"0:","10:","20:","30:","40:","50:","60:","70:","80:","90:","100:"};
p=(int*)malloc(100*sizeof(int));
while(*(p-1)!=-1)
{
scanf("%ld",p);
p++;
n++;
}
p=p-n;
for(i=0;i<n-1;i++)
{
switch (*(p++)/10)
{
case 0:
strcat(q[0],"*");
break;

case 1:
strcat(q[1],"*");
break;
case 2:
strcat(q[2],"*");
break;
case 3:
strcat(q[3],"*");
break;
case 4:
strcat(q[4],"*");
break;
case 5:
strcat(q[5],"*");
break;
case 6:
strcat(q[6],"*");
break;
case 7:
strcat(q[7],"*");
break;
case 8:
strcat(q[8],"*");
break;
case 9:
strcat(q[9],"*");
break;
case 10:
strcat(q[10],"*");
break;
}
}
for(i=0;i<=10;i++)
{
printf("%s\n",q[i]);
}
free(p);
}

输入一串整数(0-100),假设输入10,20,20,30然后输出格式如下:
0;
10;*
20;**
30;*
40;
50;
60;
70;
80;
90;
100;

上面那个程序是对的!现在我要把程序的输入格式变成垂直的:
*
* * *
0 10 20 30 40 50 60 70 80 90 100

程序要怎么改?

搜索更多相关主题的帖子: 柱状 include char int 
2006-10-17 10:46
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

改用数组存放*号的个数.同时保存输入数据个数的最大值(max).再输出时,比较每个元素是否等于max则输出*,同时将a[i]--.否则输出空格.循环一次max--,后面要换行.待*号全部输出.再输出
0 10 20 30 40 50 60 70 80 90 100

/*看这个可以不?*/
#include<stdio.h>

int main()
{
int i,max=0,num,a[11];
for(i=0;i<11;i++)
{
a[i]=0;

}
while(scanf("%d",&num)&&num!=-1)
{
a[num/10]++;
}
for(i=0;i<11;i++)
{
if(a[i]>max)
{
max=a[i];
}
}

while(max)
{
for(i=0;i<11;i++)
{

if(a[i]==max)
{
printf("*");
a[i]--;
}
else
{
printf("");
}
}
printf("\n");
max--;
}
getch();
return(0);
}


倚天照海花无数,流水高山心自知。
2006-10-17 14:46
快速回复:柱状图~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017734 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved