uva 537 - Artificial Intelligence?

#include<iostream>

#include<cctype>

#include<cmath>

#include<cstring>

#include<algorithm>

using namespace std;



int main(){

    int T, k = 1;

    double U, I, P;

    cin >> T;

    cin.ignore();



    string s;

    while(T--){

        cout << "Problem #" << k++ << endl;

        getline(cin,s);



        U = I = P = -1;

        int i,j;

        for(i = 0; i < s.length(); i++){

            if(s[i] == '='){                    //判断=号,到数据区

                double num = 0,temp = 0;

                for(j = i + 1; isdigit(s[j]); j++)    //num计算整数部分

                    num = num*10 + s[j] - '0';

                if(s[j] == '.'){                      //如果有小数,则temp计算

                    int ct = 0;

                    for(j = j +1; isdigit(s[j]); j++)

                        temp += (s[j] - '0')*pow(10.0,-(++ct));

                }

                num += temp;

                if(s[j] == 'm')                     //判断单位

                    num /= 1000;

                else if(s[j] == 'k')

                    num *= 1000;

                else if(s[j] == 'M')

                    num *= 1000000;

                if(s[i-1] == 'U')

                    U = num;

                else if(s[i-1] == 'I')

                    I = num;

                else if(s[i-1] == 'P')

                    P = num;

            }

        }

        if(P == -1)

            printf("P=%.2fW\n",U*I);

        else if(U == -1)

            printf("U=%.2fV\n",P/I);

        else

            printf("I=%.2fA\n",P/U);

        cout << endl;

    }



    return 0;

}

 

你可能感兴趣的:(int)