求n个数中最小者问题!
千万别以为这问题太简单了
数组中有10个数,如何能在只走一遍数组的情况下找出其中的"两个"最小者,那位会,给个算法
还是看看我的老爷车吧
#include <stdio.h>
#include <conio.h>
#define N 10
static void Input(int a[], int n);
static void TwoMin(int a[], int n);
int main(void)
{
int a[N];
Input(a, N);
TwoMin(a, N);
getch();
return 0;
}
static void Input(int a[], int n)
{
int i;
printf("Enter ten data: ");
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
}
static void TwoMin(int a[], int n)
{
int i, j, temp, b[2];
b[0] = a[0], b[1] = a[1];
for (i = 2; i < n; i++)
{
for (j = 0; j < 2; j++)
{
if (a[i] < b[j])
{
temp = a[i], a[i] = b[j], b[j] = temp;
}
}
}
printf("Min1 = %d\n", b[0]);
printf("Min2 = %d\n", b[1]);
}