打印输入中单词长度的直方图(水平打印)
2014-11-19 22:01
288 查看
#include <stdio.h> #define MAXWORDLEN 10//定义最长字符的长度 int main(void) { int c;//接受从键盘得到的字符 int inspace = 0;//用于表示当前是否在单词中 long lengtharr[MAXWORDLEN + 1];//记录当前单词长度wardlen的个数 int wordlen = 0;// 单词长度计数器 int thisval = 0;//当前长度单词的个数 long maxval = 0;//所有单词中,最多个数的单词的个数 int thisidx = 0;//当前单词长度 int done = 0;//循环执行条件 for (thisidx = 0; thisidx <= MAXWORDLEN; thisidx++) { lengtharr[thisidx] = 0;//初始化 } while (0 == done) { c = getchar(); if (c == ' ' || c == '\t' || c == '\n' || c == EOF)//当当前字符为以上空白符时 { if (inspace == 0) { inspace = 1; if (wordlen <= MAXWORDLEN)//单词长度小于最大单词长度时 { if (wordlen > 0)//数据不为空 { thisval = ++lengtharr[wordlen - 1];//当前长度的单词的个数加一后赋给thisval if (thisval > maxval)//如果当前长度单词的个数大于最大个数 { maxval = thisval;//刷新最大个数 }//thisval > maxval }//wordlen > 0 }//wordlen <= MAXWORDLEN else { thisval = ++lengtharr[MAXWORDLEN];//单词长度大于最大单词长度时,将横坐标为大于十的个数加一 if (thisval > maxval) { maxval = thisval;//刷新最大个数 }//thisval > maxval } } if (c == EOF)//终止 { done = 1; } } else { if (inspace == 1 ) { wordlen = 0; inspace = 0; } ++wordlen;//个数计数器刷新为当前单词已读入的字母的个数 } }//thisval > maxval for(thisidx=10;thisidx>=0;thisidx--)//开始打印,纵坐标单词长度 { for(thisval=1;thisval<=lengtharr[thisidx]+1;thisval++)//打印星星,因为还要打印坐标轴所以打印次数为星星数+1 { if(thisidx==10)//因为第一行纵坐标不同于后几行所以单独用if区别开来 { if(thisval==1)//对第一次打印,打印坐标轴 printf(" >%d|",MAXWORDLEN); else//以后每次打印都打印星星 printf(" * "); } else//同上 { if(thisval==1) printf("%4d|",thisidx+1); else printf(" * "); } } printf("\n");//每打印完一个长度的数量对应的星星后后就换行 } printf(" +");//打印坐标原点 for(thisval=1;thisval<=maxval;thisval++) printf("---");//对每个横坐标分配3个横线作为坐标轴防止出现是大于一位的个数空间不够 printf("\n"); printf(" "); for(thisval=1;thisval<=maxval;thisval++) printf("%2d ",thisval);//打印横坐标 printf("\n");//换行。。。 return 0; }
相关文章推荐
- 练习1-13 编写一个程序,打印输入中单词长度的直方图(水平)(方法2)
- 打印输入中单词长度的直方图(水平方向)
- 练习1-13:编写一个程序,打印输入中单词长度的直方图(水平)(C程序设计语言 第2版)
- 学习C:打印输入中单词长度的水平方向直方图
- 第7周 C语言程序设计(新2版) 练习1-13 打印输入单词长度的直方图(水平与垂直)
- 练习 1 - 13 编写一个程序,打印输入中单词长度的水平直方图 和 垂直直方图
- 打印输入单词长度的直方图 (水平方向)程序分析
- 【C】打印输入中单词长度的直方图(水平)
- 编写一个程序,打印输入中单词长度的水平和垂直方向直方图
- 编写一个程序,打印输入中单词长度的直方图。水平方向的直方图比较容易
- 练习1-13 编写一个程序,打印输入中单词长度的直方图(水平)
- 打印输入中单词长度的直方图(垂直方向的直方图)
- 打印输入中单词长度的直方图
- 打印输入单词长度的直方图 (垂直方向)
- 打印输入中单词长度的直方图
- 练习1-13 编写一个程序,打印输入中单词长度的直方图(垂直)
- 打印输入中单词长度的直方图(垂直方向)
- 编写一个程序,打印输入中单词长度的直方图
- 打印输入中单词长度的直方图(垂直打印)
- 习题1-13(垂直方向直方图):编写一个程序打印输入中单词长度的垂直方向的直方图。