您的位置:首页 > 其它

UVa 537 - Artificial Intelligence?

2012-05-31 15:58 281 查看
题很简单,但是由于粗心,导致各种纠结,WA了N多次。。。。。

AC代码如下:

#include<stdio.h>
#include<string.h>

void func(char str[])
{
int len, i, j, con, dot, n;
double value[100], sum;
char s[100];
len=strlen(str);
memset(value, 0, sizeof(value));
for (i=0; i<len; i++)
{
if (str[i] == '=')
{
sum=0;
dot=1;
con=str[i-1];
for (j=i+1; j<len; j++)
{
if(str[j]!='.' && (str[j]<'0'||str[j]>'9'))
{
s[j-i-1]='\0';
break;
}
s[j-i-1]=str[j];
}
i=j;
n=strlen(s);
for (j=0; j<n; j++)
{
if (s[j] >= '0' && s[j] <='9')
{
sum=sum*10+s[j]-'0';
}
else
{
for (j=j+1; j<n; j++)
{
sum=sum*10+s[j]-'0';
dot*=10;
}
}
}
value[con]=1.0*sum/dot;
if (str[i] == 'm')
value[con]*=0.001;
if (str[i] == 'k')
value[con]*=1000;
if (str[i] == 'M')
value[con]*=1000000;
}
}
if (!value['U'])
printf("U=%.2lfV\n",1.0*value['P']/value['I']);
if (!value['P'])
printf("P=%.2lfW\n",1.0*value['U']*value['I']);
if (!value['I'])
printf("I=%.2lfA\n",1.0*value['P']/value['U']);
}

int main()
{
int T, i;
char str[20000];
scanf("%d%*c", &T);
for (i=0; i<T; i++)
{
gets(str);
printf("Problem #%d\n",i+1);
func(str);
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: