欢迎来到天天文库
浏览记录
ID:12685708
大小:164.00 KB
页数:6页
时间:2018-07-18
《c语言程序设计序言习题答案续》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、习题1-13(垂直方向直方图):编写一个程序打印输入中单词长度的垂直方向的直方图。ViewCode1#include2#defineIN1/*在单词内部*/3#defineOUT0/*在单词外部*/4#defineMAXLEN15/*单词的最大长度*/5#defineMAXHIST15/*直方图的最大长度*/6#defineMAXWORD100/*限制输入单词的上限*/7http://m.qqlove789.com8intwl[MAXWORD];/*用于存放单词长度的数组*/910/*打印垂直方向
2、的直方图*/11voidmain()12{13charc;14inti,j;15intlen=0;/*当前单词的长度*/16intwc=0;/*统计单词的个数*/17intstate=OUT;/*状态初始化为在单词外部*/18intmaxvalue;/*单词中最大长度*/19for(intk=0;k3、4、c=='t'5、6、c==''){23if(state==7、IN){24if(len>MAXLEN)25len=MAXLEN;26wl[++wc]=len;27}28len=0;29state=OUT;30}elseif(state==OUT){31state=IN;32len++;33}else34len++;35}36if(wc<1){37printf("nowords!");38return;39}elseif(wc>MAXWORD)40wc=MAXWORD;41maxvalue=0;42for(i=1;i<=wc;i++){43if(wl[i]>maxvalue8、)44maxvalue=wl[i];45}46/*实现垂直直方图*/47for(i=MAXHIST;i>0;--i){48for(j=1;j<=wc;j++)49if(wl[j]%MAXHIST>=i){50printf("*");51}else52printf("");53putchar('');54}55for(i=1;i<=wc;i++)56printf("%d",wl[i]);57putchar('');58}RT:垂直直方图和水平直方图程序在统计单词个数之前都是一致的,垂直直方图使用另外一种处理方9、式。http://www.keaimingzhi.com习题1-14:编写一个程序,打印输入中各个字符出现频度的直方图。ViewCode1#include2#include3#defineMAXHIST15/*直方图长度上限*/4#defineMAXCHAR128/*出现的字符上限*/56/*统计输入中各个字符的直方图*/7voidmain()8{9charc;10inti;11intcharlen;/*字符出现的频度*/12intch[MAXCHAR];/*保存所有字符的数组*10、/13for(i=0;iMAXHIST)21ch[i]=MAXHIST;22}23/*输出水平方向直方图*/24for(i=1;i11、*/29printf("%c%dt",i,charlen);30else31printf("%dt",charlen);32while(ch[i]>0){33putchar('*');34--ch[i];35}36putchar('');37}38}RT:从打印的结果来看,第一个是不可显示的换行符,第二个是空格,其余是字母。习题:重新编写1.2节中温度转换程序,使用函数实现温度转换计算。ViewCode1#include2#defineMAXHIGH300/*温度表的上限*/34intge12、tcelsius(int);/*函数声明*/56/*使用函数来实现温度转换功能*/7voidmain()8{9intlow,temp,celsius;10low=0;/*温度表的下限*/11temp=20;/*步长*/12for(;low<=MAXHIGH;low+=temp){13celsius=getcelsius(low);/*使用函数获取转换后的温度
3、
4、c=='t'
5、
6、c==''){23if(state==
7、IN){24if(len>MAXLEN)25len=MAXLEN;26wl[++wc]=len;27}28len=0;29state=OUT;30}elseif(state==OUT){31state=IN;32len++;33}else34len++;35}36if(wc<1){37printf("nowords!");38return;39}elseif(wc>MAXWORD)40wc=MAXWORD;41maxvalue=0;42for(i=1;i<=wc;i++){43if(wl[i]>maxvalue
8、)44maxvalue=wl[i];45}46/*实现垂直直方图*/47for(i=MAXHIST;i>0;--i){48for(j=1;j<=wc;j++)49if(wl[j]%MAXHIST>=i){50printf("*");51}else52printf("");53putchar('');54}55for(i=1;i<=wc;i++)56printf("%d",wl[i]);57putchar('');58}RT:垂直直方图和水平直方图程序在统计单词个数之前都是一致的,垂直直方图使用另外一种处理方
9、式。http://www.keaimingzhi.com习题1-14:编写一个程序,打印输入中各个字符出现频度的直方图。ViewCode1#include2#include3#defineMAXHIST15/*直方图长度上限*/4#defineMAXCHAR128/*出现的字符上限*/56/*统计输入中各个字符的直方图*/7voidmain()8{9charc;10inti;11intcharlen;/*字符出现的频度*/12intch[MAXCHAR];/*保存所有字符的数组*
10、/13for(i=0;iMAXHIST)21ch[i]=MAXHIST;22}23/*输出水平方向直方图*/24for(i=1;i11、*/29printf("%c%dt",i,charlen);30else31printf("%dt",charlen);32while(ch[i]>0){33putchar('*');34--ch[i];35}36putchar('');37}38}RT:从打印的结果来看,第一个是不可显示的换行符,第二个是空格,其余是字母。习题:重新编写1.2节中温度转换程序,使用函数实现温度转换计算。ViewCode1#include2#defineMAXHIGH300/*温度表的上限*/34intge12、tcelsius(int);/*函数声明*/56/*使用函数来实现温度转换功能*/7voidmain()8{9intlow,temp,celsius;10low=0;/*温度表的下限*/11temp=20;/*步长*/12for(;low<=MAXHIGH;low+=temp){13celsius=getcelsius(low);/*使用函数获取转换后的温度
11、*/29printf("%c%dt",i,charlen);30else31printf("%dt",charlen);32while(ch[i]>0){33putchar('*');34--ch[i];35}36putchar('');37}38}RT:从打印的结果来看,第一个是不可显示的换行符,第二个是空格,其余是字母。习题:重新编写1.2节中温度转换程序,使用函数实现温度转换计算。ViewCode1#include2#defineMAXHIGH300/*温度表的上限*/34intge
12、tcelsius(int);/*函数声明*/56/*使用函数来实现温度转换功能*/7voidmain()8{9intlow,temp,celsius;10low=0;/*温度表的下限*/11temp=20;/*步长*/12for(;low<=MAXHIGH;low+=temp){13celsius=getcelsius(low);/*使用函数获取转换后的温度
此文档下载收益归作者所有