c语言 萌新 求大神解答
用指针方式编写程序:从键盘输入10个整型数据并存入数组,要求将10个数中最大的数与第一个输入的数交换;将10个数中最小的数与最后一个输入的数交换。
有问题先百度下,这样会学到更多。
这个链接应该是你想要的答案:https://zhidao.baidu.com/question/628669845512669764.html
#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; }