第一行输出:"fahr celsius" 接着每行输出一个华氏温度fahr(整型)与一个摄氏温度celsius(占据6个字符宽度,靠右对齐,保留1位小数)。 若输入的范围不合法,则输出"Invalid."。 用C语言
时间: 2024-09-29 10:04:05 浏览: 116
在C语言中,你可以创建一个简单的程序来实现这个需求。这里是一个示例程序:
```c
#include <stdio.h>
#include <math.h>
// 函数用于将华氏转摄氏
double fahrenheit_to_celsius(int fahr) {
return (fahr - 32) * 5 / 9;
}
int main() {
int fahr;
printf("fahr celsius\n");
// 循环读取并转换温度
while (scanf("%d", &fahr) == 1) {
if (fahr >= -459.67 && fahr <= 1000000) { // 检查非法温度范围
double celsius = fahrenheit_to_celsius(fahr);
printf("%3d %*.*f\n", fahr, 6, 1, celsius); // 6个字符宽度,1位小数,右对齐
} else {
printf("Invalid.\n"); // 输出错误信息
scanf("\n"); // 清空输入缓冲区
}
}
return 0;
}
```
这个程序首先定义了一个函数`fahrenheit_to_celsius`用于华氏到摄氏的转换,然后在主函数中通过循环读取用户输入的华氏温度,检查是否在合法范围内,如果合法则进行转换并按照指定格式打印结果,否则提示“Invalid.”并清除输入缓冲区。
运行此程序时,需要从标准输入逐行输入华氏温度值,并在每个温度之后回车。例如:
```
32
Invalid.
-40
```
注意,因为`printf`会自动在数字右侧填充空格以达到指定的宽度,所以不需要手动处理。当输入超出范围时,会立即停止并显示错误信息。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pptx](https://img-home.csdnimg.cn/images/20241231044947.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)