关于VC++一个简单的交换最小最大值问题。。。

来源:百度知道 编辑:UC知道 时间:2024/05/25 09:55:00
输入一个正整数n(1<n<=10),再输入n个证书,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。

我是这样做的,但是 有问题。。。
#include<stdio.h>
void main()
{
int n,a[100],max,min,i,m,l;
printf("Input n:");
scanf("%d",&n);
printf("Input %d integers:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
min=a[0];
m=0;
for(i=1;i<n;i++)
{
if(min>a[i])
{
min=a[i];
m=i;
}

}
a[m]=a[0];
a[0]=min;

max=a[n-1];
l=n-1;
for(i=n-2;i>=0;i--)
{
if(max<a[i])
max=a[i];
l=i;
}
a[l]=a[n-1];
a[n-1]=max;

printf("After swapped:");
for(i=0;i<n;i++)
{
printf("%-4d",a[i]);
}
}
我调试的时候,单个交换最小或者最大都可以,但是合在一起就不行了。。。
哪个大虾能帮帮忙,我已经修改了几小时了。。。还是做不出来。。。。。谢谢大家了。。。。。。
你这个不得行呀。。。。

#include<stdio.h>
void main()
{
int n,a[100],min,max,i,m,l;
printf("Input n:");
scanf("%d",&n);
printf("Input %d integers:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
min=a[0];
m=0;
l=0;
for(i=1;i<n;i++)
{
if(min>a[i])
{
min=a[i];
m=i;
}
}
a[m]=a[0];
a[0]=min;
max=a[1];
for(i=1;i<n;i++)
{
if(max<a[i])
{
max=a[i];
l=i;
}
}
a[l]=a[n-1];
a[n-1]=max;

printf("After swapped:");
for(i=0;i<n;i++)
{
printf("%-4d",a[i]);
}
}
重改了下,之前粗心了