有一个长度为n的整数序列,其中最大值和最小值不会出现在序列的第一和最后一个位置。
请写一个程序,把序列中的最小值与第一个数交换,最大值与最后一个数交换。输出转换好的序列。
#include
int main()
{
int n,i=0,pos;
int a[]={};
int temp,j;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",a[i]);
}
temp=a[i];
pos=i;
for(j=i+1;j<n;j++)
{
if(a[0]<a[j])
{
a[j]=temp;
pos=j;
}
}
a[pos]=a[i];
a[i]=temp;
temp=a[i];
pos=i;
i=n;
for(j=i-1;j>=0;j--)
{
if(a[i]>a[j])
{
a[j]=temp;
pos=j;
}
}
a[pos]=a[i];
a[i]=temp;
for(i=0;i<n;i++)
{
printf("%d",a[i]);
}
return 0;
}
为什么直接结束了运行 应该怎么写才对 我用dev c++写的
我还碰到一个问题 运行时出现 “0x77el4995”志林或引用的“0x77bbfc42e”内存,该内存不能为“written”
要终止程序,请点击“确定”
要调试程序,请点击“取消”