c语言 萌新 求大神解答
用指针方式编写程序:从键盘输入10个整型数据并存入数组,要求将10个数中最大的数与第一个输入的数交换;将10个数中最小的数与最后一个输入的数交换。
程序代码:#include<stdio.h>
int main(void)
{
int a[10];
int *p=a;
int i, pmax, pmin;
int max, min, temp;
printf("请输入10个数据:\n");
for(i=0;i<10;i++)
{
scanf("%d",p+i);
}
/*
输入10个数据
*/
max=a[0];
min=a[0];
for(i=1;i<10;i++){
if( max< a[ i])
max=a[i], pmax= i;
if( min> a[ i])
min=a[i], pmin= i;
}
/*
找到最值
*/
//既然都找到了最值,直接交换就好了,看不懂你用循环干嘛的。
temp= max;
max=a[0];
a[0]= temp;//tmp写错了
temp=min;
min=a[9];
a[9]= temp;
/*
交换最值
*/
for(i=0;i<10;i++)
printf("%d ",*(p+i));
puts("");
return 0;
}