对调最大数与最小数位置
实例说明:
从键盘中输入一组数据,找出这组数据中的最大数与最小数,将最大数与最小数位置互换,并将互换后的数据再次输出。
实现过程:
- 打开VisualC++6.0开发环境,新建一个C源文件,并输入要创建C源文件的名称。
- 引用头文件,代码如下:
#include <stdio.h>
3.利用for 循环和if条件判断语句确定最大数与最小数的位置,互换后将数组再次输出。
4. 程序主要代码如下:
// 对调最大数与最小数位置
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a[20], max, min, i, j, k, n;/*定义数组及变量数据类型为基本整型*/
printf("PLease input the number of elements:\n");
scanf("%d", &n); /*输入要输入的元素个数*/
printf("Please input the element:\n");
for (i = 0; i < n; i++) /*输入数据*/
scanf("%d", &a[i]);
min = a[0];
for (i = 1; i < n; i++) /*找出数组中最小的数*/
if (a[i] < min)
{
min = a[i];
j = i; /*将最小数所存储的位置赋给j*/
}
max = a[0];
for (i = 1; i < n; i++) /*找出这组数据中的最大数*/
if (a[i] > max)
{
max = a[i];
k = i; /*将最大数所存储的位置赋给k*/
}
a[k] = min; /*在最大数位置存放最小数*/
a[j] = max; /*在最小数位置存放最大数*/
printf("\nthe position of min is:%3d\n", j);/*输出原数组中最小数所在的位置*/
printf("the position of max is:%3d\n", k);/*输出原数组中最大数所在的位置*/
printf("Now the array is:\n");
for (i = 0; i < n; i++)
printf("%5d", a[i]); /*将换完位置的数组再次输出*/
return 0;
}
运行结果:
技术要点:
本实例的主要思路是:首先要确定最大数与最小数的具体位置,将a[0]赋给min,用min 和数组中其他元素比较,有比min小的,则将这个较小的值赋给 min,同时将其所在位置赋给j,当和数组中元素均比较一次后,此时i中存放的就是数组中最小数所在的位置。最大数位置的确定方法同最小数位置的确定。当确定具体位置后将这两个数位置互换,最后将互换后的数组输出。
希望能对您的学习和生活有所帮助!
标签:最大数,min,对调,位置,最小,C语言,数组,printf From: https://blog.csdn.net/Mumyi_/article/details/140734338