• 第一章:打印直方图


    第一章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 }
    View Code

    结果展示:

  • 相关阅读:
    MvcScaffolding: OnetoMany Relationships
    未能从程序集“System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载
    MVC中使用Scaffold生成代码
    项目开发的三个阶段 我的一点体会
    在Eclipse工作空间中创建新项目的方法
    Visual Studio 使用常见问题
    Matlab代码:为图像添加信噪比为SNR db的高斯噪声
    《Ogre 3D 游戏开发框架指南》配套光盘的一个小瑕疵
    如何阅读C++源代码
    在Eclipse工作空间中移除再添加项目的方法
  • 原文地址:https://www.cnblogs.com/VVsky/p/10476904.html
Copyright © 2020-2023  润新知