zrq495
www.zrq495.com

题很简单,但是由于粗心,导致各种纠结,WA了N多次。。。。。

AC代码如下:

 1 #include<stdio.h>
 2 #include<string.h>
 3 
 4 void func(char str[])
 5 {
 6     int len, i, j, con, dot, n;
 7     double value[100], sum;
 8     char s[100];
 9     len=strlen(str);
10     memset(value, 0, sizeof(value));
11     for (i=0; i<len; i++)
12     {
13         if (str[i] == '=')
14         {
15             sum=0;
16             dot=1;
17             con=str[i-1];
18             for (j=i+1; j<len; j++)
19             {
20                 if(str[j]!='.' && (str[j]<'0'||str[j]>'9'))
21                 {
22                     s[j-i-1]='\0';
23                     break;
24                 }
25                 s[j-i-1]=str[j];
26             }
27             i=j;
28             n=strlen(s);
29             for (j=0; j<n; j++)
30             {
31                 if (s[j] >= '0' && s[j] <='9')
32                 {
33                     sum=sum*10+s[j]-'0';
34                 }
35                 else
36                 {
37                     for (j=j+1; j<n; j++)
38                     {
39                         sum=sum*10+s[j]-'0';
40                         dot*=10;
41                     }
42                 }
43             }
44             value[con]=1.0*sum/dot;
45             if (str[i] == 'm')
46                 value[con]*=0.001;
47             if (str[i] == 'k')
48                 value[con]*=1000;
49             if (str[i] == 'M')
50                 value[con]*=1000000;
51         }
52     }
53     if (!value['U'])
54         printf("U=%.2lfV\n",1.0*value['P']/value['I']);
55     if (!value['P'])
56         printf("P=%.2lfW\n",1.0*value['U']*value['I']);
57     if (!value['I'])
58         printf("I=%.2lfA\n",1.0*value['P']/value['U']);
59 }
60 
61 int main()
62 {
63     int T, i;
64     char str[20000];
65     scanf("%d%*c", &T);
66     for (i=0; i<T; i++)
67     {
68         gets(str);
69         printf("Problem #%d\n",i+1);
70         func(str);
71         printf("\n");
72     }
73     return 0;
74 }
posted on 2012-05-31 15:58  zrq495  阅读(195)  评论(0编辑  收藏  举报