#include<stdio.h>#define N 10void PrintData(int a[],int n);void ReadData(int a[],int n);void MaxMinExchange(int a[],int n);void Swap(int *x,int *y);int main(){ int i,a[N],n; printf("Input array a:"); scanf("%d",&a[N]); printf("Input %d number:",n); ReadData(a,n); MaxMinExchange(a,n); printf("Exchange result:"); PrintData(a,n); return 0;}void ReadData(int a[],int n){ int i; for(i=0;i<n;i++) { scanf("%d",&a[i]); }}void PrintData(int a[],int n){ int i; for(i=0;i<n;i++) { printf("%d\n",a[i]); }}void MaxMinExchange(int a[],int n){ int Max=a[0],Min=a[0],Maxpos=0,Minpos=0; int i; for(i=0;i<n;i++) { if(Max<a[i]) { Max=a[i]; Maxpos=i; } for(i=0;i<n;i++) { if(Min<a[i]) { Min=a[i]; Minpos=i; } } Swap(&a[Maxpos],&a[Minpos]);}void Swap(int *x,int *y){ int temp; temp=*x; *x=*y; *y=temp;}
1 回答
已采纳
RockenRoll
TA贡献35条经验 获得超13个赞
不好意思之前那个回答的有问题
void MaxMinExchange(int a[],int n)
{
int Max=a[0],Min=a[0],Maxpos=0,Minpos=0;
int i;
for(i=0;i<n;i++)
{
if(Max<a[i])
{
Max=a[i];
Maxpos=i;
}
for(i=0;i<n;i++)
{
if(Min<a[i])
{
Min=a[i];
Minpos=i;
}
}
Swap(&a[Maxpos],&a[Minpos]);
}
这里少了一个括号,scanf("%d",&a[N]);这我上面回复错了,不过你要是想输入10个元素,还是要用循环遍历的吧,要不你定义的那个i根本就没用啊
- 1 回答
- 0 关注
- 1791 浏览
添加回答
举报
0/150
提交
取消