码迷,mamicode.com
首页 > 其他好文 > 详细

编程练习:名字的漂亮度

时间:2016-09-10 11:41:51      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

题目来源:华为OJ
 1 // nameBeautyDegree.cpp : 定义控制台应用程序的入口点。
 2 //
 3 
 4 #include "stdafx.h"
 5 #include <iostream>
 6 #include <stdlib.h>
 7 #include <string>
 8 #include <map>
 9 using namespace std;
10 //冒泡排序
11 void sort(int *array,size_t num)
12 {
13     size_t i,j,temp;
14     for(i=num;i>1;i--)
15     for(j=0;j<i-1;j++){
16         if(array[j]<array[j+1]){
17             temp=array[j];
18             array[j]=array[j+1];
19             array[j+1]=temp;
20         }
21     }
22 } 
23 //计算一个名字的漂亮度
24 int nameValue(char* name)
25 {
26     map<char,int> myMap;//某个字母出现的次数 
27     map<char,int>::iterator ite;
28     size_t size=strlen(name);//名字的长度
29     unsigned int i;//for循环
30     int chValue[50];//字符出现的次数 
31     int k=26;//漂亮度 
32     int nValue=0;//名字的漂亮度 
33     //遍历名字中的字符,将字符及其出现的次数插入myMap中
34     for(i=0;i<size;i++){
35         ite=myMap.find(name[i]);
36         if(ite!=myMap.end())
37             ite->second+=1;
38         else
39             myMap.insert(pair<char,int>(name[i],1));
40     }
41     //得到所有字符出现的次数 
42     ite=myMap.begin();
43     for(i=0;i<myMap.size();i++)
44     {
45         chValue[i]=ite->second;
46         ite++;
47     }
48     //对所有字符出现的次数进行排序
49     sort(chValue,myMap.size());
50     //计算名字的漂亮度 
51     for(i=0;i<myMap.size()-1;i++){//i遍历次数为myMap.size()-1,因为最后一个字符是换行符
52         nValue+=(chValue[i])*k;
53         k--;    
54     }
55     return nValue;
56 } 
57 int main() {
58     unsigned int n;
59     unsigned int i;
60     cin>>n;//输入名字个数
61     if(n<=0)//个数小于0,返回
62             return 0;
63     int ch;
64     ch=getchar();//接收回车符
65     char name[10][50];//存放n个名字
66     //接收名字
67     for(i=0;i<n;i++)
68     {
69         fgets(name[i],50,stdin);//接收名字,以回车符作为结束标志,同时把回车符也送进了名字里,注意处理掉
70     }
71     //打印每个名字的漂亮度
72     for(i=0;i<n;i++)
73         cout<<nameValue(name[i])<<endl;//调用函数nameValue()
74     return 0;
75 }


编程练习:名字的漂亮度

标签:

原文地址:http://www.cnblogs.com/mountainfly/p/5858923.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!