uva - 537 - Artificial Intelligence?
2014-02-02 22:00
274 查看
#include <stdio.h> #include <string.h> #include <math.h> char s[1000]; double Calculte (char ss[]) { int len = 0, flag = 0; len = strlen(ss); double cal = 0; for (int i = 0; i < len; i++) { if (ss[i] == '.') { flag = i; break; } } if (flag) { for (int i = len-1; i > flag; i--) cal += (ss[i] - 48) * pow((float)10, (flag-i)); for (int i = flag-1; i >=0; i --) cal += (ss[i] - 48) * pow((float)10, (flag-i-1)); } else { for (int i = len-1; i >= 0; i--) cal += (ss[i] - 48) * pow((float)10, (len-i-1)); } return cal; } int main() { int N; scanf("%d", &N); getchar(); for (int l = 1; l <= N; l++) { double I = 0, P = 0, U = 0; int flag_p = 0, flag_i = 0, flag_u = 0; char num[10]; gets(s); int len = strlen(s); for (int i = 0; i < len; i++) { memset(num, '\0', sizeof(num)); if (s[i] == 'P' && s[i+1] == '=') { flag_p = 1; i = i+2; int temp = i; if (s[i] == '-') i++; int j; for (j = 0; (s[i] <= '9' && s[i] >= '0') || s[i] == '.' ; j++, i++ ) num[j] = s[i]; num[j] = '\0'; switch(s[i]) { case 'm': P = Calculte(num) * 0.001; break; case 'k': P = Calculte(num) * 1000; break; case 'M': P = Calculte(num) * 1000000; break; default : P = Calculte(num); } if (s[temp] == '-') P *= -1; } if (s[i] == 'I' && s[i+1] == '=') { flag_i = 1; i = i+2; int temp = i; if (s[i] == '-') i++; int j; for (j = 0; (s[i] <= '9' && s[i] >= '0') || s[i] == '.'; j++, i++ ) num[j] = s[i]; num[j] = '\0'; switch(s[i]) { case 'm': I = Calculte(num) * 0.001; break; case 'k': I = Calculte(num) * 1000; break; case 'M': I = Calculte(num) * 1000000; break; default : I = Calculte(num); } if (s[temp] == '-') I *= -1; } if (s[i] == 'U' && s[i+1] == '=') { flag_u = 1; i = i+2; int temp = i; if (s[i] == '-') i++; int j; for (j = 0; (s[i] <= '9' && s[i] >= '0') || s[i] == '.'; j++, i++ ) num[j] = s[i]; num[j] = '\0'; switch(s[i]) { case 'm': U = Calculte(num) * 0.001; break; case 'k': U = Calculte(num) * 1000; break; case 'M': U = Calculte(num) * 1000000; break; default : U = Calculte(num); } if (s[temp] == '-') U *= -1; } } printf("Problem #%d\n", l); if (flag_p && flag_i) printf("U=%.2lfV\n", P/I); else if (flag_p && flag_u) printf("I=%.2lfA\n", P/U); else if (flag_i && flag_u) printf("P=%.2lfW\n", I*U); putchar('\n'); } return 0; }
相关文章推荐
- UVa 537 - Artificial Intelligence?
- UVA之537 - Artificial Intelligence?
- UVA 537 Artificial Intelligence?
- UVA - UVA - 537 Artificial
- UVa 537 Artificial Intelligence?
- UVA537
- UVa-537
- uva 537 Automatic Poetry
- uva 537 Artificial Intelligence?
- uva 537 Artificial Intelligence?
- UVa 537 - Artificial Intelligence?
- uva 537 - Artificial Intelligence?
- uva537字符串中小数转化为实际小数
- UVa537 Artificial Intelligence?
- uva537
- UVa 537 - Artificial Intelligence?
- UVA - 537 - Artificial Intelligence
- UVA 537 (暑假-字符串(1) -D - Artificial Intelligence?)
- UVa 537 - Artificial Intelligence?解题报告
- uva 537