在C语言中,在一行中使用多个赋值
我需要这两段代码的帮助。除了一个变化外,它们都是相同的。在C语言中,在一行中使用多个赋值,c,C,我需要这两段代码的帮助。除了一个变化外,它们都是相同的。 我用了while(摄氏度在第二个示例中,您将lower设置为0,并且从不更改它。因此,在第二个示例中,比较lower的循环将lower设置为0,并且从不更改它。因此,比较lower和lower的循环从不更改while循环中的值,因此条件始终为真,循环永远不会终止。在某一点上,摄氏度或华氏度的值可能变得太大,从而导致崩溃。(或者更确切地说,我将“使终端崩溃”解释为“使终端无响应”。程序不会崩溃,但有太多的输出,您无法再与终端正常交互。)两
我用了
while(摄氏度在第二个示例中,您将lower
设置为0,并且从不更改它。因此,在第二个示例中,比较lower的循环将lower
设置为0,并且从不更改它。因此,比较lower
和lower
的循环从不更改while循环中的值,因此条件始终为真,循环永远不会终止。在某一点上,摄氏度或华氏度的值可能变得太大,从而导致崩溃。(或者更确切地说,我将“使终端崩溃”解释为“使终端无响应”。程序不会崩溃,但有太多的输出,您无法再与终端正常交互。)两个程序都使用了不正确的计算(9/5)
@M.M我纠正了那个错误。现在是(9.0/5.0)。感谢您指出。while循环中的下限
和上限
值永远不会更改,因此条件始终为真,循环永远不会终止。在某些情况下,摄氏度或华氏度的值可能变得过大,从而导致崩溃。(或者更确切地说,我将“崩溃终端”解释为“使终端无响应”。程序没有崩溃,但有太多的输出,你无法与终端正常交互。)两个程序都使用了错误的计算(9/5)
@M.M我纠正了这个错误。现在是(9.0/5.0)。谢谢你指出。我想问另一件事。在第一个代码中(正在运行),终端给出1.000、2.000、3.000等输出值,2个自然数之间没有2.485等值。基本上,它给出的是浮点值,但仍然有问题。可能是什么?@HarshitJindal:使用浮点运算-摄氏度*(9.0/5.0)+32.0
或类似值。(就我个人而言,我更喜欢fahrenheit=(摄氏+40.0)*(9.0/5.0)-40.0;
,因为反过来是cellices=(华氏+40)*(5.0/9.0)-40.0;
,但这是一个完全不同的讨论。)重要的是,将9
和5
中的一个视为浮点;然后其余的将按此处理。我想问另一件事。在第一个代码中(这是有效的),终端给出1.000、2.000、3.000等输出值,2个自然数之间没有2.485等值。基本上,它给出的是浮点值,但仍然有问题。可能是什么?@HarshitJindal:使用浮点运算-摄氏度*(9.0/5.0)+32.0
或类似值。(就我个人而言,我更喜欢fahrenheit=(摄氏+40.0)*(9.0/5.0)-40.0;
,因为它的反面是cellices=(华氏+40)*(5.0/9.0)-40.0;
,但这是一个完全不同的讨论。)关键是9
和5
中的一个被视为浮点;然后其余的都会跟进。
#include <stdio.h>
//program to print celsius to fahrenheit table
int main (void)
{
float celsius, fahr;
int lower, upper, step;
celsius = lower = 0;
upper = 100;
while (celsius <= upper)
{
fahr = celsius * (9.0/5.0) + 32.0;
printf("%5.3f\t=\t%5.3f\n", celsius, fahr);
celsius = celsius + 1;
}
}
#include <stdio.h>
//program to print celsius to fahrenheit table
int main (void)
{
float celsius, fahr;
int lower, upper, step;
celsius = lower = 0;
upper = 100;
while (lower <= upper)
{
fahr = celsius * (9.0/5.0) + 32.0;
printf("%5.3f\t=\t%5.3f\n", celsius, fahr);
celsius = celsius + 1;
}
}