| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:我的代码是这样的,为什么。。。。In Reply To:Re:我的代码是这样的,为什么。。。。 Posted by:Cunch at 2009-08-16 20:15:55 #include <stdio.h>
#include <math.h>
int main()
{
float humidex, temperature, dewpoint;
float h, e;
char c1, c2;
float tmp1, tmp2;
while(scanf("%c", &c1), c1!='E')
{
scanf("%f %c %f", &tmp1, &c2, &tmp2);
getchar();// 兄弟 你在这还有一个回车没读入(输入流中) ,导致C1!= ‘E’为真 继续判断 多输入一行上一次的结果
switch(c1+c2)
{
case 'T'+'D':
temperature = (c1 == 'T')?tmp1:tmp2;
dewpoint = (c1 == 'D')?tmp1:tmp2;
e = (float)(6.11 * exp(5417.753 * ((1/273.16) - (1/(dewpoint + 273.16)))));
h = (float)(0.5555 * (e - 10.0));
humidex = temperature + h;
break;
case 'T'+'H':
temperature = (c1 == 'T')?tmp1:tmp2;
humidex = (c1 == 'H')?tmp1:tmp2;
h = (humidex - temperature);
e = (float)(h/0.5555 + 10.0);
dewpoint = 1/((1/273.16) - (log(e/6.11))/5417.753) - 273.16;
break;
case 'H'+'D':
humidex = (c1 == 'H')?tmp1:tmp2;
dewpoint = (c1 == 'D')?tmp1:tmp2;
e = (float)(6.11 * exp(5417.753 * ((1/273.16) - (1/(dewpoint + 273.16)))));
h = (float)(0.5555 * (e - 10.0));
temperature = humidex - h;
break;
default:
break;
}
printf("T %.1f D %.1f H %.1f\n", temperature, dewpoint, humidex);
//scanf("%c", &c1);//为什么一定要加这一句呢?这里才c1得到的是一个回车符
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator