我正在学习C并需要一些帮助。任务是使用while循环输出华氏温度及其摄氏温度表。我从1华氏度(-17摄氏度)到300华氏度(148摄氏度),增量为华氏20度。我想输出2个小数位的两个温度(我使用的是%.2f)。我收到以下错误:
22:33: warning: expression result unused
[-Wunused-value]
while ((i = upperbound), (i >= lowerbound), (i=i - increment))
~ ^ ~~~~~~~~~~
1 warning generated.
所以lowerbound
由于某种原因未被使用。我尝试了几件事,但都没有。请帮忙!这是代码:
#include <stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
int main()
{
double Tc=0;
double Tf=0;
double lowerbound = 1;
double upperbound = 15;
double increment = 1;
int i = 15;
while ((i = upperbound), (i >= lowerbound), (i=i - increment))
{
Tf=20*i;
Tc=((5.0*Tf)-(5.0*32.0))/9.0;
printf("%.2f\t%.2f\n", Tf, Tc);
}
printf("1.000000 %f\n",((5.0*1)-(5.0*32.0))/9.0);
return 0;
}
答案 0 :(得分:3)
while ((i = upperbound), (i >= lowerbound), (i=i - increment))
为什么,
中有while
?我认为您的意思是for
和,
应该是;
:
for ((i = upperbound); (i >= lowerbound); (i=i - increment))
如果您需要使用while
循环,则无法通过混合两者来创建自己的语法! while
的语法如下:
while(expression)
{
instruction1;
instruction2;
...
}
其中expression
是一个表达式,其为true或false。在您的情况下,这将是i >= lowerbound
。你不能把循环变量的增量和初始化放在那里,你必须单独完成。初始化应该在循环之前,并且增量应该在循环的指令块结束时完成。然后while
循环等同于for
循环。
对于int
,upperbound
和lowerbound
而言,increment
似乎更合适,因为浮动点不需要精确。
答案 1 :(得分:1)
由于您对使用while
循环感兴趣,请尝试使用
#include <stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
int main()
{
double Tc=0;
double Tf=0;
int lowerbound = 1;
int upperbound = 15;
int i = upperbound;
while (i >= lowerbound)
{
Tf=20*i;
Tc=((5.0*Tf)-(5.0*32.0))/9.0;
printf("%.2f\t%.2f\n", Tf, Tc);
i--;
}
printf("1.000000 %f\n",((5.0*1)-(5.0*32.0))/9.0);
return 0;
}
请参阅此处的输出:http://ideone.com/DuYi0j