UVA 10424

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1365

爱的计算,把两个人的名字中的各个字母分别对应1到26,并相加,分别记和,最后二人和的比就是爱的结果,注意这个结果不超过100%

View Code
 1 #include<stdio.h>
 2 #include<string.h>
 3 void zhuanhua(char *s)//把大写改成小写
 4 {
 5  while(*s)
 6     {
 7      if((*s)>='A'&&(*s)<='Z')
 8         {
 9          (*s)=(*s)+32;
10         }
11      s++;
12     }
13 }
14 int main()
15 {
16  float ans;
17  int i,temp,a,b,as,bs;
18  char name[30],y[2];
19  while(gets(name))
20      {
21       a=b=as=bs=0;
22       zhuanhua(name);
23       for(i=0;name[i]!='\0';i++)
24           if(name[i]>='a'&&name[i]<='z')
25               a+=name[i]-96;
26       do{
27          as=0;
28          while(a/10>0)
29           {
30            as+=a%10;
31            a/=10;
32           }
33          as+=a;
34          a=as;
35         }while(as>9);//把二位数以上的逐个相加,直到变成一位数
36       gets(name);
37       zhuanhua(name);
38       for(i=0;name[i]!='\0';i++)
39           if(name[i]>='a'&&name[i]<='z')
40               b+=name[i]-96;
41       do{
42          bs=0;
43          while(b/10>0)
44           {
45            bs+=b%10;
46            b/=10;
47           }
48          bs+=b;
49          b=bs;
50         }while(bs>9);
51         if(as>bs)
52            {
53             temp=as;
54             as=bs;
55             bs=temp;
56            }
57       ans=(float)as/(float)bs;//强制转换
58       if(ans>=1.00)
59          ans=1.00;
60       ans*=100;//化为百分比
61       printf("%.2f %%\n",ans);
62      }
63  return 0;
64 }

 

posted @ 2013-02-19 09:20  执着追求的IT小小鸟  阅读(126)  评论(0编辑  收藏  举报