UVA - 537 - Artificial Intelligence?

9 篇文章 0 订阅
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
//#define LOCAL
int GetValue(char a[],float &p,float &u,float &i)
{
    int il,j=0,k=0,flag[3],tag[2],tg=0,lennm=0,count[3]={0},cnum=0;
    float save;
    char num[2][100],renum[2][100];
    for(il=0;il<strlen(a);il++)
    {
        if((a[il]=='U'||a[il]=='P'||a[il]=='I')&&a[il+1]=='=')
        {
            flag[j++]=il;
        }  
    } 
    flag[2]=strlen(a);     
    for(il=0;il<2;il++)
    {
        for(j=flag[il];j<flag[il+1];j++)
        {
            if(a[j]=='V'||a[j]=='W'||a[j]=='A')
            {
                tag[tg++]=j;
                break;
            }
        }
    } 
    for(il=0;il<2;il++)
    {
        for(j=flag[il];j<tag[il];j++)
        {
            num[il][cnum++]=a[j];
        }
        num[il][cnum]='\0';
        cnum=0;
    }
    cnum=0;
    for(il=0;il<2;il++)
    {
        for(j=flag[il];j<tag[il];j++)
        {
            renum[il][cnum++]=a[j+2];
        }
        renum[il][cnum]='\0';
        cnum=0;
    }
    for(il=0;il<2;il++)
    {
        save=atof(renum[il]);
        lennm=strlen(num[il]);
        for(j=0;j<lennm;j++)
        {
            if(num[il][j]=='U')
            {
                if(isdigit(num[il][lennm-1]))
                {
                    u=save;
                }
                else if(num[il][lennm-1]=='m')
                {
                    u=save/1000;
                } 
                else if(num[il][lennm-1]=='k')
                {
                    u=save*1000;
                }
                else if(num[il][lennm-1]=='M')
                {
                    u=save*1000000;
                } 
                count[0]=1;  
                break; 
            } 
            if(num[il][j]=='P')
            {
                if(isdigit(num[il][lennm-1]))
                {
                    p=save;
                }
                else if(num[il][lennm-1]=='m')
                {
                    p=save/1000;
                } 
                else if(num[il][lennm-1]=='k')
                {
                    p=save*1000;
                }
                else if(num[il][lennm-1]=='M')
                {
                    p=save*1000000;
                }  
                count[1]=1;  
            }
            if(num[il][j]=='I')
            {
                if(isdigit(num[il][lennm-1]))
                {
                    i=save;
                }
                else if(num[il][lennm-1]=='m')
                {
                    i=save/1000;
                } 
                else if(num[il][lennm-1]=='k')
                {
                    i=save*1000;
                }
                else if(num[il][lennm-1]=='M')
                {
                    i=save*1000000;
                } 
                count[2]=1;   
            }
        }
    }
    if(!count[0])return 0;
    if(!count[1])return 1;
    if(!count[2])return 2;
}                  
                
                    
            
                        
int main()
{
    #ifdef LOCAL
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
    #endif 
    int n,i,Quest;
    float P,U,I;
    char text[1000];
    scanf("%d",&n);
    getchar();
    for(i=0;i<n;i++)
    {
        gets(text);
        Quest=GetValue(text,P,U,I);
        printf("Problem #%d\n",i+1);
        if(Quest==0)
        {
            U=P/I;
            printf("U=%.2fV\n",U);
        } 
        if(Quest==1)
        {
            P=U*I;
            printf("P=%.2fW\n",P);
        } 
        if(Quest==2)
        {
            I=P/U;
            printf("I=%.2fA\n",I);
        }    
        printf("\n");
    }
    return 0;
}        


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值