字符串完美度计算的C实现(我自己编译运行正确,编程挑战赛时不管怎么都成功不了,奇了个葩)
来源:互联网 发布:好看的爱情电影 知乎 编辑:程序博客网 时间:2024/04/26 04:30
算法思想:
第一步:利用一个长度26的数组存放每个字母(不分大小写)出现的次数,如count[0]表示a或A的出现的次数;
第二步:统计出现字母的种类数;
第三步:利用一个长度26的数组存放每种字母的完美度权值(出现最多的字母权值为26),权值=(26-字母种类数)+字母出现的次数;
第四步:计算次数与权值乘积的累加和即为字符串的完美度。
#include <stdio.h>
int perfect(const char *s)
{
int i;//循环变量
int order=0;//定位变量
int base=0;//计算基底
int count[26]={0};//个数数组
int value[26]={0};//权值数组
int kind=0;//种类数
int perfect=0;//完美度
while((*s)!='\0')//统计各字母个数
{
if((*s)>='a')
order=(int)((*s)-'A'-32);
else
order=(int)((*s)-'A');
count[order]+=1;
s++;
}
for(i=0;i<26;i++)//统计种类数
{
if(count[i]>0)
kind++;
}
base=26-kind;//计算基底
for(i=0;i<26;i++)//计算完美度
{
value[i]=base+count[i];
if(count[i]>0)
perfect+=count[i]*value[i];
}
return perfect;
}
int main(void)
{
char str[100];
printf("Input a string: \n");
scanf("%s",str);
printf("The perfect num of this string is: %d\n",perfect(str));
return 0;
}
下面是在Linux下的运行结果:
- 字符串完美度计算的C实现(我自己编译运行正确,编程挑战赛时不管怎么都成功不了,奇了个葩)
- WIN7 VS2005 安装wince6.0教程(不管是X86还是X64,我都尝试成功了)
- 我自己都不知道怎么写出来的了 太可怕了 js
- 我的积分怎么都没了?
- 我的积分怎么都没了?
- c实现字符串的完美度
- 大家都在转载的Linux声音设备编程——可我却实现不了
- 我的jar包呀,怎么运行不了~~~~~~~~~~~
- 我靠!搞了几遍更新头像送积分,怎么都领取不了奖励呀!!!
- Android 屏幕动画原理 我说的 是坐标 这样 怎么实现 自己写算法 任何问题都没有了!
- 我在altera15下的第一个基于qsys的 nios2程序运行成功了
- 我用VC6写了个程序转成了VS2008编译成功了,但是界面还是VC6的样子,我想把界面也转成VS2008的风格,不知道怎么弄
- 我的IE到底出了什么问题,我低格了4次都解决不了??
- 【感想库】--生气---不管别人对错,我们都要把自己活的更好(206)
- 请教高手个问题,网吧里开始菜单里一般都将运行屏蔽掉了,我该怎么找回啊,就是让菜单里出现运行?
- ADC0832的C程序(我怎么感觉网上的各种坑爹,还是自己YY了一个)
- 可怜的Sun公司,因为收购了MySQL,想卖自己都卖不了了
- 可怜的Sun公司,因为收购了MySQL,想卖自己都卖不了了
- 时钟程序(LED+DS1302+AT89S52)
- 公交非接触IC卡读写器的应用设计
- 邵氏的历史
- 部分邵氏名人
- 邵氏部分名人2
- 字符串完美度计算的C实现(我自己编译运行正确,编程挑战赛时不管怎么都成功不了,奇了个葩)
- 大龄文艺女青年之歌
- 双联开关电路图
- 一些逻辑器件型号
- 一些逻辑器件型号
- 最全的编码总结笔记
- ic 列表
- 常用运放
- 集成电路中文名称