码迷,mamicode.com
首页 > 其他好文 > 详细

练习题1

时间:2021-02-01 12:58:26      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:--   mic   img   image   mamicode   tmp   scanf   柱状图   include   

1.从键盘上输入字符,(1)分别统计一下其中字母,数字,其他字符的个数, (2)将统计的字母,数字,其他字符的个数以柱状图的形式打印。例如

技术图片

话不多说,上代码

#include<stdio.h>
#include<stdlib.h>
int main()
{
	char c;
	int a[3]={0};
	char *p[3]={"alp","num","oth"};
	int temp;
	char *ptmp;
	int i,j;
	while(scanf("%c",&c)!=EOF)
	{
		if(c>=‘a‘&&c<=‘z‘ || c>=‘A‘&&c<=‘Z‘)
		{
			a[0]++;
		}else if(c>=‘1‘&&c<=‘9‘)
		{
		    a[1]++;
	    }else {
	    	a[2]++;
	        if(c==‘\n‘)
	        {
	        	break;
		    }
	   }
	}
	for(i=3;i>1;i--)
	{
		for(j=0;j<i-1;j++)
		{
			if(a[j]<a[j+1])
			{
				temp=a[j];
				a[j]=a[j+1];
			        a[j+1]=temp;//交换整型数组
				ptmp=p[j];
				p[j]=p[j+1];
				p[j+1]=ptmp;//交换字符数组指针中的指针				
			}
		}		
	}
	printf("a[0]=%d a[1]=%d a[2]=%d\n",a[0],a[1],a[2]);
	printf("p[0]=%s p[1]=%s p[2]=%s\n",p[0],p[1],p[2]);
	
	for(i=0;i<a[0];i++)
	{
		if(0==i)
		{
			printf("%3d  ",a[0]);
		}else printf("*****  ");
		if(a[0]-a[1]==i)
		{
			printf("%3d  ",a[1]);
		}else if(i>a[0]-a[1])
		{
			printf("*****  ");
		}
		if(a[0]-a[2]==i)
		{
			printf("%3d  ",a[2]);
		}else if(i>a[0]-a[2])
		{
			printf("*****  "); 
		}
		printf("\n");		
	}
	printf("%4s   %4s   %4s\n",p[0],p[1],p[2]);
	return 0;
} 

这道题其实并不是很困难,只是可能涉及到了字符数组,还有排序算法.解法其它字符我统计了\n,也可以不统计.

练习题1

标签:--   mic   img   image   mamicode   tmp   scanf   柱状图   include   

原文地址:https://www.cnblogs.com/buxiu888/p/14093271.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!