查找数组中最小的两个数
要求:给定一个数组,找出其中最小的两个数
思路:
代码:
void findTwoMin(int* data, int *min1, int *min2, int length){
int temp;
*min1 = data[0];
*min2 = data[1];
if(*min1 > *min2){
temp = *min1;
*min1 = *min2;
*min2 = temp;
}
for(int i=2; i<length; i++){
if(data[i] < *min1){
*min2 = *min1;
*min1 = data[i];
} else if (data[i] < *min2) {
*min2 = data[i];
}
}
}
以上
测试代码:
#include <stdio.h>
void findTwoMin(int* data, int *min1, int *min2, int length);
int main(int argc, char *argv[])
{
int data[100];
int n = 10;
for(int i=0; i<n; i++){
scanf("%d", &data[i]);
}
int min1, min2;
findTwoMin(data, &min1, &min2, n);
printf("min1 = %d\n", min1);
printf("min2 = %d\n", min2);
return 0;
}
void findTwoMin(int* data, int *min1, int *min2, int length){
int temp;
*min1 = data[0];
*min2 = data[1];
if(*min1 > *min2){
temp = *min1;
*min1 = *min2;
*min2 = temp;
}
for(int i=2; i<length; i++){
if(data[i] < *min1){
*min2 = *min1;
*min1 = data[i];
} else if (data[i] < *min2) {
*min2 = data[i];
}
}
}
输出结果:
以上