当前位置: 首页 > news >正文

第一章:打印直方图

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

结果如下:

 =》垂直直方

 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

结果展示:

 

转载于:https://www.cnblogs.com/VVsky/p/10476904.html

相关文章:

  • 第九届蓝桥杯省赛--方格计数
  • 数列分块(数据结构)学习笔记
  • 程序员:想知道你每天按了多少次键盘吗?
  • 分布式和集群的区别
  • Android中 Git 使用中几个概念
  • PyTorch 1.0 中文官方教程:词嵌入:编码形式的词汇语义
  • VHDL硬件描述语言(三)——基本数据对象和数据类型
  • [Gym-102091E] How Many Groups
  • pandas之数据处理
  • windows上配置mysql主从复制
  • C/C++每日小练(七)——墓地雕塑
  • Springboot- Spring缓存抽象学习笔记
  • 讲一讲垃圾回收算法
  • virtualbox 迁移虚拟机存储位置
  • 程序员面试时用中文命名写白板代码的好处
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • centos安装java运行环境jdk+tomcat
  • Javascript 原型链
  • Nodejs和JavaWeb协助开发
  • orm2 中文文档 3.1 模型属性
  • PAT A1017 优先队列
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 一道面试题引发的“血案”
  • 责任链模式的两种实现
  • 找一份好的前端工作,起点很重要
  • ![CDATA[ ]] 是什么东东
  • # .NET Framework中使用命名管道进行进程间通信
  • #Linux(make工具和makefile文件以及makefile语法)
  • #大学#套接字
  • #微信小程序(布局、渲染层基础知识)
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (23)Linux的软硬连接
  • (9)STL算法之逆转旋转
  • (Java数据结构)ArrayList
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (十六)一篇文章学会Java的常用API
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (学习日记)2024.02.29:UCOSIII第二节
  • .net core 依赖注入的基本用发
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET委托:一个关于C#的睡前故事
  • 。Net下Windows服务程序开发疑惑
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @media screen 针对不同移动设备
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • @vue/cli脚手架
  • [ 隧道技术 ] 反弹shell的集中常见方式(四)python反弹shell
  • [30期] 我的学习方法
  • [4.9福建四校联考]
  • [Android Studio 权威教程]断点调试和高级调试
  • [Android学习笔记]ScrollView的使用
  • [CQOI 2010]扑克牌
  • [C语言]——分支和循环(4)