本题有两种解决方法:假设法和选择排序法
1.假设法找最值
#include <stdio.h>
int main()
{
int a[10], i, max, mini;
for (i = 0; i < 10; i++)
scanf_s("%d", &a[i]);
max = a[0]; //首先假设a[0]为最大值
mini = a[0]; //首先假设a[0]为最小值
for (i = 1; i < 10; i++)
{
if (a[i] > max)
max = a[i];
if (a[i] < mini)
mini = a[i];
}
printf("max=%d,mini=%d\n", max, mini);
return 0;
}
2.选择排序法(这次输出新增一个要求:不仅输出最值还要按从小到大顺序输出)
#include <stdio.h>
int main()
{
int a[10], i, j, t;
for (i = 0; i < 10; i++)
scanf_s("%d", &a[i]);
for (i = 0; i < 9; i++)
for (j = i + 1; j < 10; j++)
if (a[i] > a[j]) //若从大到小排列,则此处改为a[i]<a[j]
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
for (i = 0; i < 10; i++)
printf("%d\n", a[i]);
return 0;
}