关于数组问题求助,想了很久!
题目:输入5个整数,将其中最小者与第一个数对调,最大者与最后一个数对调我写的代码输入几个随机数字还可以实现,但是输入连续的,如:5 4 3 2 1,程序无法正常执行!
我写的代码:
# include <stdio.h>
# define N 5
int main(void)
{
int a[N],i,x1,x2,max,min,t; /* max,min,分别代表最大值,最小值 */
/* x1,x2,分别代表最大值的下标与最小值的下标 */
for (i = 0;i<N;i++)
{
printf("请输入a[%d] = ",i);
scanf("%d",&a[i]);
}
max = min = a[0]; /* 初始化max,min的值都为a[0] */
x1 = x2 = 0;
for (i = 1;i<N;i++) /* 找出最大值,并把这个最大值的下标保存在x1中 */
{
if ( max < a[i] )
{
max = a[i];
x1 = i;
}
}
for (i = 1;i<N;i++) /* 找出最小值,并把这个最小值的下标保存在x2中 */
{
if ( min > a[i] )
{
min = a[i];
x2 = i;
}
}
printf("max = %d,min = %d\n",max,min);
printf("x1 = %d,x2 = %d\n",x1,x2);
t = a[x2];
a[x2] = a[0];
a[0] = t;
t = a[x1];
a[x1] = a[N-1];
a[N-1] = t;
for (i = 0;i<N;i++)
printf("a[%d]=%d\n",i,a[i]);
return 0;
}