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

2.输入8个数字放入一堆数组W中,输出交换前数组;找出其中最小的和最大的数,并将它们分别与数组中的第一个元素和最后一个元素交换位置;输出交换后数组.请写出具体的编程... 2.输入8个数字放入一堆数组W中,输出交换前数组;找出其中最小的和最大的数,并将它们分别与数组中的第一个元素和最后一个元素交换位置;输出交换后数组.
请写出具体的编程
展开
 我来答
脾气有点壞
2008-02-21 · 超过18用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:0
展开全部
对数据空间和比较次数有要求吗?
如果没有要求你可以设两个常量MAX和MIN用于保留最大和最小值,然后八次循环输出八个数再把八个数输入
其它的就很easy啦
百度网友9c7ff3096
2008-02-21 · TA获得超过149个赞
知道小有建树答主
回答量:177
采纳率:100%
帮助的人:96.1万
展开全部
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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友34adba635
2008-02-21 · TA获得超过367个赞
知道小有建树答主
回答量:296
采纳率:0%
帮助的人:309万
展开全部
#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;i<8;i++)
printf("%3d",a[i]);

/* find max and min number */
tmp=a[0];
for(i=1;i<8;i++){
if(MAX(a[i],tmp))
max=a[i];
else if(MIN(a[i],tmp))
min=a[i];
}

printf("max:\tmin:\t\n",max,min);

/* exchange */
tmp=a[0];
a[0]=a[7];
a[7]=tmp;

/* output numbers after exchange */
printf("after exchange:\n");
for(i=0;i<8;i++)
printf("%3d",a[i]);

return 0;
}

英语不好,所以说明性的文字写得很简单。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
01158722
2008-03-05
知道答主
回答量:33
采纳率:0%
帮助的人:0
展开全部
可以很好的实现题目中的要求
#include <stdio.h>

void main(void)
{
int num[8] ;
int min; //用于存放数组中的最小值
int max; //用来存放数组中的最大值
int x; //用于存放最小值对应的下标
int y; //用于存放最大值对应的下标
int i ; //用于循环

printf("请输入八个整数 ");

for(i=0;i<8;i++)
scanf("%d", num[i]);

min=num[0];
max=num[0];

for(i=1;i<8;i++)
{
if(num[i] < min)
{
min = num[i] ;
x = i ;
}

else if (num[i] >= max )
{
max = num[i] ;
y = i;
}

} //本循环执行完之后,min中存放的是数组的最小值,max中存放的是数组的最大值

num[x] = num[0] ;
num[0] = min ;

num[y] = num[7];
num[7] = max ;

printf("修改后数字排列为:");

for(i=0;i<8;i++)
{
printf("%3d",num[i]);
printf(" ");
}
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式