如何编写 C 语言程序来查找数组中的最小数字(一维数组)?以及数组中最小数字的索引位置。在阅读这篇关于数组中最小数字的文章之前。
C 语言查找数组中最小数字的程序
在这个 C 语言程序中,我们声明了一个大小为 10 的一维数组 a[]。我们还声明了变量 i 用于迭代数组元素,变量 Smallest 用于存储数组中的最小元素。变量 Position 用于存储最小元素的索引位置。
#include<stdio.h>
int main()
{
int a[10], Size, i, Smallest, Position;
printf("\nPlease Enter the size of an array \n");
scanf("%d",&Size);
printf("\nPlease Enter %d elements of an array: \n", Size);
for(i=0; i<Size; i++)
{
scanf("%d",&a[i]);
}
Smallest = a[0];
for(i=1; i<Size; i++)
{
if(Smallest > a[i])
{
Smallest = a[i];
Position = i;
}
}
printf("\nSmallest element in an Array = %d", Smallest);
printf("\nIndex position of the Smallest element = %d", Position);
return 0;
}

在这个 C 语言查找数组中最小数字的程序中,下面的For 循环有助于迭代 a[4] 数组中的每个单元格。For 循环中的条件(i < Size)将确保编译器不会超出数组的限制。请参阅C 语言数组文章以了解数组大小、索引位置等概念。
For 循环内的 scanf 语句会将用户输入的值存储到每个单独的数组元素中,例如 a[0]、a[1]、a[2]、a[3]。
for(i=0; i<Size; i++)
{
scanf("%d",&a[i]);
}
在数组中最小数字的下一行,我们将 a[0] 的值赋给了 Smallest 变量。
Smallest = a[0];
在下一行C 语言编程中,我们有另一个 for 循环。用于迭代数组中的每个元素。通过将每个元素与 Smallest 值进行比较,If 语句可以找到数组中的最小数字。
for(i=1; i<Size; i++)
{
if(Smallest > a[i])
{
Smallest = a[i]; Position = i;
}
}
从上面的 C 语言查找数组中最小数字的示例屏幕截图中,您可以看到用户输入的值是
a[4] = {10, 6, 98, 45}
最大值 = a[0] = 10
第一次迭代:i 的值为 1,条件(i < 4)为真。因此,它将开始执行循环内的语句,直到条件失败。
For 循环内的 If 语句(Smallest > a[i])为真,因为(10 > 6)。
Smallest = a[i] = a[1]
Smallest = 6
Position = 1
第二次迭代:i = 2,条件(2 < 4)为真。
For 循环内的 If 语句(Smallest > a[i])为假,因为(6 < 98),所以 Smallest 值不会被更新。这意味着
Smallest = 6
Position = 1
查找数组中最小数字的程序 – 第三次迭代
i = 3,条件(3 < 4)为真。
For 循环内的 If 语句(Smallest > a[i])为假,因为(6 < 45)。因此,Smallest 值不会被更新。这意味着
Smallest = 6
Position = 1
第四次迭代:增加 i 的值后,i 将变为 5。因此,条件(i < Size)将失败,编译器将退出循环。
下面的 printf 语句用于打印数组中的最小数字。在这个C 语言程序示例中,它是 6。
printf("\nSmallest element in an Array = %d", Smallest);
下面的 printf 语句用于打印数组中最小数字的索引位置。在这个示例中,它发生在位置 2。
printf("\nIndex position of the Smallest element = %d", Position);
评论已关闭。