字母出现频率c语言,C语言K&R习题系列——统计一段文字中各个字母出现的频率...

原题:

/*Write a program to print a histogram of the frequencies of

*difficent characters in it inputs

*/

这个和上一个类似

输入部分#include 

#define NUM_CHARS 256

main ( void )

{

int c;

int done = 0;

int thisIdx = 0;

long frequrr[NUM_CHARS + 1];

long thisVal = 0;

long maxVal = 0;

//initialize

for ( thisIdx = 0; thisIdx <= NUM_CHARS; thisIdx++ )

{

frequrr[thisIdx] = 0;

}

while ( done == 0 )

{

c = getchar();

if ( c == EOF )

{

done = 1;

}

if ( c 

{

thisVal = ++frequrr[c];

if ( thisVal > maxVal )

{

maxVal = thisVal;

}

}

else

{

thisVal = ++frequrr[NUM_CHARS];

if ( thisVal > maxVal )

{

maxVal = thisVal;

}

}

}

输出部分for ( thisVal = maxVal; thisVal >0; thisVal-- )

{

printf ( "%2d |", thisVal );

for ( thisIdx = 0; thisIdx <= NUM_CHARS; thisIdx++ )

{

if ( frequrr[thisIdx] >= thisVal )

{

printf ( "*" );

}

else if ( frequrr[thisIdx] > 0 )

{

printf ( " " );

}

}

printf ( "\n" );

}

printf ( "   |_" );

for ( thisIdx = 0; thisIdx 

{

if ( frequrr[thisIdx] > 0 )

printf ( "_");

}

printf ( "\n    " );

for ( thisIdx = 0; thisIdx 

{

if ( frequrr[thisIdx] > 0 )

printf ( "%d", ( thisIdx + 1 ) / 100 );

}

printf ( "\n    " );

for ( thisIdx = 0; thisIdx 

{

if ( frequrr[thisIdx] > 0 )

printf ( "%d", ( thisIdx + 1 ) / 10 % 10 );

}

printf ( "\n    " );

for ( thisIdx = 0; thisIdx 

{

if ( frequrr[thisIdx] > 0 )

printf ( "%d", ( thisIdx + 1 ) % 10 );

}

printf ( "\n" );

return 0;

}

运行结果

501fdc37fcb997a0027bfca3978dbf6c.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值