输入十个实数到一维数组,将数组中最大值最小值交换位置

如题所述

第1个回答  2012-06-04
#include<stdio.h>

int main()
{
int a[10];
int i,j,k,t,m,n;

for(i=0;i<10;i++)
scanf("%d",&a[i]);

k=a[0];
j=a[0];
m=0;
n=0;
for(i=1;i<10;i++) //筛选最大值 和最大值的位置
{
if(a[i]>k)
{
k=a[i];
m=i;
}
}

for(i=1;i<10;i++) //筛选最小值 和最小值的位置
{
if(a[i]<j)
{
j=a[i];
n=i;
}
}

t=a[m]; //将最大值和最小置换位置
a[m]=a[n];
a[n]=t;

for(i=0;i<10;i++)
printf("%d ",a[i]);

getch(); //这是调用的系统函数 不是DEV-C++编译器的不用这个函数
}
第2个回答  2012-06-04
#include <iostream>
using namespace std;
int main()
{
float a[10],min,max;
int i,mini=0,maxi=0;
for (i=0;i<10;++i)
scanf("%f",&a[i]);
min=a[0],max=a[0];
for (i=1;i<10;++i)
{
if(a[i]>max)
{
max=a[i];
maxi=i;
}
if(a[i]<min)
{
min=a[i];
mini=i;
}
}
a[maxi]=min;
a[mini]=max;
for (i=0;i<10;++i)
printf("%f\n",a[i]);
return 0;
}本回答被提问者采纳
第3个回答  2012-06-04
#include <iostream>
using namespace std;
void main()
{
float a[10]={十个数};
int i,min,max,x;
min=a[0],max=a[0];
for (i=1;i<10;i++)
{
if(a[i]>max)
{
max=a[i];
}
if(a[i]<min)
{
min=a[i];
}
}
x=max;
max=min;
min=x;
for (i=0;i<10;++i)
printf("%f\n",a[i]);
}
相似回答