跳到主要内容

C 编程:在三个数字中找到最大数的程序

要理解这个例子,你需要了解以下 C 语言编程 主题的知识:

示例 1:使用 if 语句

#include <stdio.h>

int main() {

double n1, n2, n3;

printf("输入三个不同的数字:");
scanf("%lf %lf %lf", &n1, &n2, &n3);

// 如果 n1 大于 n2 和 n3,n1 是最大的
if (n1 >= n2 && n1 >= n3)
printf("%.2f 是最大的数字。", n1);

// 如果 n2 大于 n1 和 n3,n2 是最大的
if (n2 >= n1 && n2 >= n3)
printf("%.2f 是最大的数字。", n2);

// 如果 n3 大于 n1 和 n2,n3 是最大的
if (n3 >= n1 && n3 >= n2)
printf("%.2f 是最大的数字。", n3);

return 0;
}

在这里,我们使用了 3 个不同的 if 语句。第一个语句检查 n1 是否是最大的数字。

第二个和第三个 if 语句分别检查 n2n3 是否是最大的。

这个程序的最大缺点是,无论哪个数字最大,所有 3 个 if 语句都会被执行。

然而,我们只想执行一个 if 语句。我们可以通过使用 if...else 阶梯来实现。

示例 2:使用 if...else 阶梯

#include <stdio.h>

int main() {

double n1, n2, n3;

printf("输入三个数字:");
scanf("%lf %lf %lf", &n1, &n2, &n3);

// 如果 n1 大于 n2 和 n3,n1 是最大的
if (n1 >= n2 && n1 >= n3)
printf("%.2lf 是最大的数字。", n1);

// 如果 n2 大于 n1 和 n3,n2 是最大的
else if (n2 >= n1 && n2 >= n3)
printf("%.2lf 是最大的数字。", n2);

// 如果以上条件都不成立,n3 是最大的
else
printf("%.2lf 是最大的数字。", n3);

return 0;
}

在这个程序中,当 n1 是最大的时候,只有 if 语句会被执行。

类似地,当 n2 是最大的时候,只有 else if 语句会被执行,依此类推。

示例 3:使用嵌套 if...else

#include <stdio.h>

int main() {

double n1, n2, n3;

printf("输入三个数字:");
scanf("%lf %lf %lf", &n1, &n2, &n3);

// 外层 if 语句
if (n1 >= n2) {

// 内层 if...else
if (n1 >= n3)
printf("%.2lf 是最大的数字。", n1);
else
printf("%.2lf 是最大的数字。", n3);
}

// 外层 else 语句
else {

// 内层 if...else
if (n2 >= n3)
printf("%.2lf 是最大的数字。", n2);
else
printf("%.2lf 是最大的数字。", n3);
}

return 0;
}
```在这个程序中,我们使用了嵌套的 `if...else` 语句来找出最大的数字。让我们更详细地看看它们是如何工作的。

**1. 外层 if 语句**

首先,注意外层的 `if` 语句和内部的 if...else 语句:

```c
// 外层 if 语句
if (n1 >= n2) {
// 内部 if...else
if (n1 >= n3)
printf("%.2lf 是最大的数字。", n1);
else
printf("%.2lf 是最大的数字。", n3);
}

这里,我们正在检查 n1 是否大于或等于 n2。如果是,程序控制将转到内部的 if...else 语句。

内部的 if 语句检查 n1 是否也大于或等于 n3

如果是,那么 n1 要么等于 n2n3,要么现在大于 n2n3,即 n1 >= n2 >= n3。因此,n1 是最大的数字。

否则,n1 大于或等于 n2,但小于 n3,即 n3 > n1 >= n2。因此,n3 是最大的数字。

2. 外层 else 语句

n2 > n1 时,执行外层 else 语句:

// 外层 else 语句
else {
// 内部 if...else
if (n2 >= n3)
printf("%.2lf 是最大的数字。", n2);
else
printf("%.2lf 是最大的数字。", n3);
}

这部分程序的内部 if...else 使用与之前相同的逻辑。唯一的区别在于我们正在检查 n2 是否大于 n3

以上所有程序的输出将是相同的。

输入三个数字:-4.5
3.9
5.6
5.60 是最大的数字。