22、请按照要求编写程序:用户输入两个浮点数,对输入的两个浮点数进行大小判断,根据判断结果按从大到小的顺序输出这两个浮点数,如果两个数字大小相等,则输出"eq"。
输入格式
输入两个浮点数,中间用空格隔开
输出格式
输出两个浮点数,中间用空格隔开或者输出eq
#include <stdio.h>
#include <stdbool.h>
// 函数用于验证用户输入是否为有效的浮点数
bool validateInput(double *number) {
char input[100];
if (fgets(input, sizeof(input), stdin) != NULL) {
// 尝试将输入转换为浮点数
if (sscanf(input, "%lf", number) == 1) {
return true;
}
}
return false;
}
int main() {
double num1, num2;
// 循环要求用户输入第一个浮点数,直到输入有效的浮点数
while (true) {
printf("请输入第一个浮点数: ");
if (validateInput(&num1)) {
break; // 输入有效,退出循环
} else {
printf("无效输入,请重新输入浮点数。\n");
}
}
// 同样,循环要求用户输入第二个浮点数
while (true) {
printf("请输入第二个浮点数: ");
if (validateInput(&num2)) {
break; // 输入有效,退出循环
} else {
printf("无效输入,请重新输入浮点数。\n");
}
}
// 判断大小并输出
if (num1 > num2) {
printf("%.2lf %.2lf\n", num1, num2);
} else if (num1 < num2) {
printf("%.2lf %.2lf\n", num2, num1);
} else {
printf("eq\n");
}
return 0;
}