|
- #include<stdio.h>
- int main()
- {
- int a[10], *p, *max, *min, k;
- for(p=a;p<a+10;p++)
- scanf("%d",p);
- max=min=a;
- for(p=a+1;p<a+10;p++)
- {
- if(*max<*p)
- max=p;
- if(*min>*p)
- min=p;
- }
- p=a;
- if(*max==*(p+9)&&*min==*p)
- {
- k=*p; *p=*(p+9); *(p+9)=k;
- }
- else if(*max==*(p+9))
- {
- k=*max; *max=*p; *p=k;
- k=*min; *min=*(p+9); *(p+9)=k;
- }
- else
- {
- k=*min; *min=*(p+9); *(p+9)=k;
- k=*max; *max=*p; *p=k;
- }
- for(p=a;p<a+10;p++)
- printf("%d",*p);
- printf("\n");
- }
- 程序的目的是用指针读入10个数
- 并且把最大数和第一个换,
- 最小的数和最后一个数换
- 我理解不了这个程序,感觉在判断中的前两个好像是多余的。
- 我想的是不执行这三个判断。
- 把数组输入完之后,直接
- k=a[0]; a[0]=*max; *max=k;
- k=a[9]; a[9]=*min; *min=k;
- 也不知道这样对不对
复制代码 |
|