第一章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==' '){ 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 ============ "); 27 printf("MAXValue:[%d] ",arrSub);//统计单词数 28 printf("^ "); 29 for(i=0;i<arrSub;i++){ 30 printf("| "); 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] ",arr[i]);}} 33 } 34 if(i==(arrSub-1)){printf("|-----------------------------------------------------------------------------> ");} 35 } 36 }
结果如下:
=》垂直直方
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("输入的字符如下: "); 15 while((c=getchar())!=EOF){ 16 if(c==' '){ 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(" ===========show vertical about word ============ "); 43 //printf("%d ",arrSub); 44 printf("| | | | "); 45 for(nc=0;nc<arr[0];nc++){ 46 //printf("|"); 47 if(nc==0){printf("| [%d] ",arr[0]);} 48 printf("| %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(" [%d]",arr[nw+1]);} 52 if((nc>=diffVal)){printf(" %s",EXPORT);} 53 } 54 printf(" "); 55 //arrSub=arrSub-1; 56 } 57 printf("|-------------------------------------------------------------------> "); 58 printf(" 水平直方图 "); 59 }
结果展示: