看一道C语言的题 谢谢帮助

来源:百度知道 编辑:UC知道 时间:2024/05/16 00:36:20
2.输入8个数字放入一堆数组W中,输出交换前数组;找出其中最小的和最大的数,并将它们分别与数组中的第一个元素和最后一个元素交换位置;输出交换后数组.
请写出具体的编程

对数据空间和比较次数有要求吗?
如果没有要求你可以设两个常量MAX和MIN用于保留最大和最小值,然后八次循环输出八个数再把八个数输入
其它的就很easy啦

for(i=0; i<8; i++){
printf("Enter number > ");
scanf("%d", &w[i]);
}

da = xiao = w[0];
for(i=1; i<8; i++){
if(w[i] > da)
da = w[i];
if(w[i] < xiao)
xiao = w[i];
}

temp = w[0];
w[0] = da;
for(i=1; i<8; i++){
if(da = w[i])
w[i] = temp;
}
temp = w[7];
w[7] = xiao;
for(i=0; i<7; i++){
if(xiao = w[i])
w[i] = temp;
}

#include <stdio.h>
#define MAX(A,B) ((A)>(B)?(A):(B))
#define MIN(A,B) ((A)<(B)?(A):(B))

int mian(void)
{

int i,tmp,max,min;
int a[8];

printf("Please input 8 numbers:\n");
for(i=0;i<8;i++)
scanf("%d",a[i]);

/* output numbers before exchange */
printf("before exchange:\n");
for(i=0