需要帮助编写制作表格的程序

时间:2014-01-15 01:58:34

标签: c compiler-errors while-loop

我正在学习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;
}

2 个答案:

答案 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循环。

对于intupperboundlowerbound而言,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