#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main()
{
float P, U, I;
char s[300];
char temp[100];
int N, count = 0, k, i, j;
scanf( "%d", &N );
getchar();
while( N-- )
{
P = U = I = 0;
gets(s);
printf( "Problem #%d\n", ++count );
for( i = 0; i < strlen(s); i++ )
{
if( s[i] == '=' )
{
k = 0;
switch( s[i-1] )
{
case 'P':
for( j = i+1; !isalpha(s[j]); j++ )
temp[k++] = s[j];
temp[k] = '\0';
P = atof(temp);
if( s[j] == 'm' ) P *= 0.001;
if( s[j] == 'k' ) P *= 1000;
if( s[j] == 'M' ) P *= 1000000;
break;
case 'U':
for( j = i+1; !isalpha(s[j]); j++ )
temp[k++] = s[j];
temp[k] = '\0';
U = atof(temp);
if( s[j] == 'm' ) U *= 0.001;
if( s[j] == 'k' ) U *= 1000;
if( s[j] == 'M' ) U *= 1000000;
break;
case 'I':
for( j = i+1; !isalpha(s[j]); j++ )
temp[k++] = s[j];
temp[k] = '\0';
I = atof(temp);
if( s[j] == 'm' ) I *= 0.001;
if( s[j] == 'k' ) I *= 1000;
if( s[j] == 'M' ) I *= 1000000;
break;
}
}
}
if( P == 0 )printf("P=%.2lfW\n\n", 1.0*U*I );
if( U == 0 )printf("U=%.2lfV\n\n", 1.0*P/I );
if( I == 0 )printf("I=%.2lfA\n\n", 1.0*P/U );
}
return 0;
}
UVA 537
最新推荐文章于 2021-06-05 03:35:03 发布