c语言里,能不能只交换一维数组第一个和最后一个元素的地址来实现交换这两个元素,其余不变

如题所述

不行的。

地址只是门牌号,元素是房子里的东西。 不能说换个门牌号 ,房子的东西就变了吧。追问

好像有道理,如果换了地址,编译时会出错吗??

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-04-22
如下:
#include<stdio.h>
int main(void)
{
int a[10],i,max,maxp,min,minp,t;
printf("请输入数组:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
minp=0;
for(i=1;i<10;i++)
{
if(a[i]<a[minp])
minp=i;
}
t=a[9];
a[9]=a[minp];
a[minp]=t;
maxp=0;
for(i=1;i<10;i++)
{
if(a[i]>a[maxp])
maxp=i;
}
t=a[0];
a[0]=a[maxp];
a[maxp]=t;
printf("输出:\n");
for(i=0;i<10;i++)
{
printf("%8d",a[i]);
if((i+1)%5==0)
printf("\n");
}
return 0;
}追问

如数组元素是1 2 3 4,但我想把元素1和4的地址换一下,只换地址,变成4 2 3 1,

你说的那个minp是int型,不是int *啊

第2个回答  2016-04-22
感觉是可以,打印出来看看啊
相似回答