UVA-537 - Artificial Intelligence?
2012-05-24 22:00
246 查看
这道题目做了至少有两个小时,郁闷~
寻找题目中的两个“=”,记录每一个“=”前面的标志(P,I,U),后面的数字。
运用数组存P,U,I的值,shu['P']存P的值,shu['I']存I的值,shu['U']存U的值,一开始全部变为0,一条字符串判断完成后,哪个为0,哪个就输出。
可惜一开始以为'k'是小写的,我一开始以为是大写的,WA了一次。
寻找题目中的两个“=”,记录每一个“=”前面的标志(P,I,U),后面的数字。
运用数组存P,U,I的值,shu['P']存P的值,shu['I']存I的值,shu['U']存U的值,一开始全部变为0,一条字符串判断完成后,哪个为0,哪个就输出。
可惜一开始以为'k'是小写的,我一开始以为是大写的,WA了一次。
#include<stdio.h> #include<string.h> double sum(char *str) { double s=0; int leap,i,n; n=strlen(str); leap=1; for(i=0;i<n;i++) { if(str[i]>='0'&&str[i]<='9') { s=s*10+str[i]-'0'; } else { for(i=i+1;i<n;i++) { s=s*10+str[i]-'0'; leap=leap*10; } } } return s/leap; } void pan(char *str) { double shu[100]; char s[100]; int i,n,leap,j; int con; n=strlen(str); memset(shu,0,sizeof(shu)); for(i=0;i<n;i++) { if(str[i]=='=') { con=str[i-1]; for(j=i+1;j<n;j++) { if(str[j]!='.'&&(str[j]<'0'||str[j]>'9')) { s[j-i-1]='\0'; break; } s[j-i-1]=str[j]; } i=j; shu[con]=1.0*sum(s); if(str[i]=='m') shu[con]*=0.001; if(str[i]=='k') shu[con]*=1000; if(str[i]=='M') shu[con]*=1000000; } } if(shu['P']==0) printf("P=%.2lfW\n",1.0*shu['U']*shu['I']); if(shu['U']==0) printf("U=%.2lfV\n",1.0*shu['P']/shu['I']); if(shu['I']==0) printf("I=%.2lfA\n",1.0*shu['P']/shu['U']); } int main() { int n,i; char str[1000]; scanf("%d%*c",&n); for(i=0;i<n;i++) { gets(str); printf("Problem #%d\n",i+1); pan(str); printf("\n"); } return 0; }
相关文章推荐
- UVA 537 - Artificial Intelligence?(字符串)
- UVa 537: Artificial Intelligence?
- UVA 537 (13.08.01)
- UVa537 - Artificial Intelligence?-字符串(混合字符实数输入)-难度3
- UVA-537 Artificial Intelligence?
- uva_537
- UVA537 - 详解Artificial Intelligence?
- UVa 537 Artificial Intelligence? (字符串查找与匹配)
- uva—537
- uva 537
- UVA 537 人工智能
- UVa-537-Artificial Intelligence?
- UVA - 537 Artificial Intelligence?
- UVA 537(简单计算)
- Uva 537 - Artificial Intelligence?
- UVA 537 Artificial Intelligence?
- UVa 537 - Artificial Intelligence?
- UVA 537 Artificial Intelligence?
- UVa-537-Artificial Intelligence?
- Artificial Intelligence? - UVa 537 字符串处理