第一章:打印直方图
第一章2019.3.5
本章未开始实质内容学习,未涉及函数,仅使用getchar().
课后题:练习1-13
=》水平直方
1 #include<stdio.h> 2 3 main(){ 4 #define MAXSIZE 100 5 int nc=0;//统计字符数 6 int arr[MAXSIZE]; 7 int i;//临时,赋值统计 8 int arrSub=0;//数组下标 9 int ncSize;//统计单词字符数 10 int c; 11 12 for(i=0;i<MAXSIZE;i++){arr[i]=0;} 13 14 while((c=getchar())!=EOF){ 15 if(c=='\n'){ 16 break; 17 } 18 else{ 19 if(c==' '){arr[arrSub]=nc;++arrSub;nc=0;} 20 else{ 21 ++nc; 22 } 23 24 } 25 } 26 printf("===========show vertical about word ============\n"); 27 printf("MAXValue:[%d]\n",arrSub);//统计单词数 28 printf("^\n"); 29 for(i=0;i<arrSub;i++){ 30 printf("|\n"); 31 if(arr[i]>0){ 32 for(ncSize=0;ncSize<arr[i];ncSize++){if(ncSize==0){printf("|");}printf("%s","*");if(ncSize==arr[i]-1){printf("[%d]\n",arr[i]);}} 33 } 34 if(i==(arrSub-1)){printf("|----------------------------------------------------------------------------->\n");} 35 } 36 }
结果如下:
=》垂直直方
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<stdio.h> 2 3 main(){ 4 #define MAXSIZE 100 5 #define EXPORT "****" 6 int nc=0;//统计字符数 7 int arr[MAXSIZE]; 8 int i;//临时,赋值统计 9 int arrSub=0;//数组下标 10 int ncSize;//统计单词字符数 11 int c; 12 13 for(i=0;i<MAXSIZE;i++){arr[i]=0;} 14 printf("输入的字符如下:\n"); 15 while((c=getchar())!=EOF){ 16 if(c=='\n'){ 17 break; 18 } 19 else{ 20 if(c==' '){arr[arrSub]=nc;++arrSub;nc=0;} 21 else{ 22 ++nc; 23 } 24 25 } 26 } 27 //数组排序从大到小 28 int nw,nwNext,nwMax; 29 int arrDiff[arrSub];//差值数组 30 31 for(nw=0;nw<arrSub;nw++){ 32 for(nwNext=nw+1;nwNext<arrSub;nwNext++){ 33 if(arr[nw]<arr[nwNext]) 34 { 35 nwMax=arr[nwNext]; 36 arr[nwNext]=arr[nw]; 37 arr[nw]=nwMax; 38 } 39 } 40 } 41 42 printf("\n===========show vertical about word ============\n"); 43 //printf("%d\n",arrSub); 44 printf("|\n|\n|\n|\n"); 45 for(nc=0;nc<arr[0];nc++){ 46 //printf("|"); 47 if(nc==0){printf("|\t[%d]\n",arr[0]);} 48 printf("|\t%s",EXPORT); 49 for(nw=0;nw<arrSub;nw++){ 50 int diffVal=arr[0]-arr[nw+1]; 51 if((nc==diffVal-1)&&(arr[nw+1]>0)){printf("\t[%d]",arr[nw+1]);} 52 if((nc>=diffVal)){printf("\t%s",EXPORT);} 53 } 54 printf("\n"); 55 //arrSub=arrSub-1; 56 } 57 printf("|------------------------------------------------------------------->\n"); 58 printf("\t水平直方图\n"); 59 }
结果展示:
作者:Vsky
出处:https://www.cnblogs.com/VVsky/
交流群:636090586(备注博客园)
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果喜欢我的文章,请关注我的公众号