练习 1
来源:互联网 发布:java实现xml文件解析 编辑:程序博客网 时间:2024/05/29 09:36
/*练习 1 - 13 编写一个程序,打印输入中单词长度的水平直方图 和 垂直直方图*/#include <stdio.h>#define IN1#define OUT 0#define NUM 1024//求数组元素最值int getArrarMax(int *arr,int arrLength){int i,j,temp;for(i = 0;i < arrLength; ++i)for (j = i + 1; j < arrLength; ++j)if(arr[i] < arr[j]){temp = arr[i];arr[i] = arr[j];arr[j] = temp;}return arr[0];}//利用双层循环打印水平直方图void horizontal(int *arr,int arrLength){int i,k;printf("\t*\n\t|\n");for(i = 0; i < arrLength;i++){printf("\t|");for(k = 0; k < arr[i]; k++)printf("|");printf("<%d>\n\t|\n",arr[i]);}printf("\t*------------------------水平直方图------------------------*\n");}//打印垂直直方图void vertical(int *arr,int arrLength){int maxValue=getArrarMax(arr, arrLength); int i,j;printf("\t*\n");for(i = maxValue+1; i > 0;i--){printf("\t|");for(j = 0; j < arrLength; j++){if(arr[j] == i){printf("___\t");arr[j]--;}else if(arr[j] == i - 1){ //显示数目printf("(%d)\t",arr[j]);}else{printf("\t");} } printf("\n");}printf("\t*------------------------垂直直方图------------------------*\n");}int main(int argc, char* argv[]){int c, nw, nc, state,i;int arr[NUM];c = nw = nc = i = 0;state = OUT;memset(arr,0,NUM);//求出数组的元素个数以及单词数while((c = getchar()) != EOF){++nc;if(c == ' ' || c == '\n' || c == '\t'){nc -= 1;state = OUT;arr[i] = nc - arr[i];//对数组填充值++i;}else if(state == OUT){state = IN;++nw;//计算单词数}}//对数组的每个元素 重新赋值每个单词的单词数for(i = nw - 1;i >0; --i){arr[i] -= arr[i-1];}horizontal(arr,nw);vertical(arr,nw);return 0;}
输出结果:
阅读全文
0 0
- 【SICP练习】1 练习1.1-练习1.5
- 练习1
- 练习1
- 练习1
- 练习1
- 练习。。。。。。1
- 练习1
- 练习1
- 练习1
- 练习1
- 练习1
- 练习1
- 练习1
- 练习1
- 练习1
- 练习1
- 练习1
- 练习1
- 三相SPWM逆变,输出相电压有效值与调制度的关系
- java锁的Lock的几种用法
- 模拟实现atoi和itoa以及100G 的IP地址求出现次数最多的前K个IP
- Android 灵活且功能强大的流式布局
- 设计模式学习笔记十六:代理模式(Proxy Pattern)
- 练习 1
- 17倍(Times17)
- hibernate的缓存概述:
- 数据库SQL优化大总结之 百万级数据库优化方案
- MySQL workbench 中修改"Host 'X' is not allowed to connect to this MySQL server"] with root ca
- 在继承中构造器的调用顺序
- 基于对抗学习的生成式对话模型——讲座(三角兽) 量子位沙龙
- USB CDC / USBnet (ECM, NCM, ACM)
- 如何用C++实现一个LRU Cache