如何找数组中的最小值和次小值
怎么找数组中的最小值和次小值
随机产生10个整数放入一维数组,找出其中的最小值和次小值输出,并把它们的位置调换
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int n,i;
int min1,min2;
#define maxsize 10
int data[maxsize];
srand((unsigned)time(NULL));
printf("产生10个随机数为:\n");
for(i=0;i<10;i++)
data[i]=rand()%90+10;
for(i=0;i<10;i++)
printf("%d ",data[i]);
printf("\t");
return 0;
}
这里产生了 然后怎么找次小值
------解决方案--------------------
------解决方案--------------------
两次冒泡即可
------解决方案--------------------
随机产生10个整数放入一维数组,找出其中的最小值和次小值输出,并把它们的位置调换
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int n,i;
int min1,min2;
#define maxsize 10
int data[maxsize];
srand((unsigned)time(NULL));
printf("产生10个随机数为:\n");
for(i=0;i<10;i++)
data[i]=rand()%90+10;
for(i=0;i<10;i++)
printf("%d ",data[i]);
printf("\t");
return 0;
}
这里产生了 然后怎么找次小值
------解决方案--------------------
# include <stdio.h>
# include <stdlib.h>
int main()
{
int a[10];
int i;
int * p; // always point to min
int * q; // always point to second min
int tmp;
for (i = 0; i < 10; i++)
a[i] = rand() % 100;
for (i = 0; i < 10; i++)
printf("%d\n", a[i]);
if (a[0] < a[1]) // assume a[0] is min, a[1] is second min
p = a, q = a + 1;
else // otherwise, a[1] is min, a[0] is second min
p = a + 1, q = a;
for (i = 2; i < 10; i++)
{
if (a[i] < *p) // less than min
{
q = p; // old min is new second min
p = a + i; // a[i] is new min
}
else if (a[i] < *q) // greater than min but less than second min
{
q = a + i; // a[i] is new second min
}
else // greater than second min
{
; // we do nothing here
}
}
printf("\nmin is: %d\n", *p);
printf("second min is: %d\n\n", *q);
tmp = *p;
*p = *q;
*q = tmp;
for (i = 0; i < 10; i++)
printf("%d\n", a[i]);
return 0;
}
------解决方案--------------------
两次冒泡即可
#include <stdio.h>
int main(int argc, char **argv)
{
int num[10] = {12, 15, 4, 43, 23, 8, 1, 25, 64,10};
int i, j, tmp;
for(i = 0; i < 2; i++){
for(j = 0; j < 9; j++){
if(num[j] < num[j+1]){
tmp = num[j];
num[j] = num[j+1];
num[j+1] = tmp;
}
}
}
printf("the smallest is %d, the second small is %d\r\n",
num[9], num[8]);
}
------解决方案--------------------