UVA537
来源:互联网 发布:python字符串转字典 编辑:程序博客网 时间:2024/04/28 05:19
这个题我自己写的戳代码WA了好久,就开始找BUG,找了好久终于发现了,就是题中不能直接
用isalpha函数判断数字末尾,必须用>='0'&&<='9',貌似是因为题中并没有说没有空格,我只是看着例子写的
,由此看来一定要注意题的意思,而不要迷惑于给的实例,实例只是一个参考,
好吧,我的戳代码找不到了,贴上一个思路和我差不多,但比我简洁的多的代码吧:
#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;
}
- UVA537
- UVA537
- UVA537
- uva537--String
- UVA537- Artificial Intelligence?
- UVa537 Artificial Intelligence?
- uva537 - Artificial Intelligence?
- uva537 - Artificial Intelligence?
- UVa537 - Artificial Intelligence?
- UVA537 - Artificial Intelligence?
- UVa537 - Artificial Intelligence?-字符串(混合字符实数输入)-难度3
- uva537 Artificial Intelligence?(字符串转化为浮点数)
- uva537字符串中小数转化为实际小数
- javascript DOM
- 2014-10-15工作
- 安卓第二课:教材中游戏启动界面实现之准备知识
- HTML5 标签列表
- 黑马程序员——面向对象11:组合
- UVA537
- 【Android JNI】JNIEnv和JavaVM的区别
- SQLite C/C++
- hdu1026(bfs+优先级队列)
- 100 条经典C语言笔试题目
- typedef input_iterator_tag iterator_category 这些都是什么意思?
- DES加密算法的实现(C++语言)
- MyBatis学习 之 一:MyBatis简介与配置MyBatis+Spring+MySql
- hadoop中fsimage和edits的区别