第一章:打印直方圖

第一章2019.3.5c++

本章未開始實質內容學習,未涉及函數,僅使用getchar().數組

課後題:練習1-13ide

=》水平直方函數

 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 }

結果以下:學習

 =》垂直直方spa

 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 }
View Code

結果展現:code

相關文章
相關標籤/搜索