题目描述:
利用指针完成一个C程序:要求输入n个整数构成一个序列,搜索这一序列的最大/最小值及该值在序列中的位置。 约定: 1. 首先输入元素个数,如果元素个数非法,则输出error后退出程序(error后不接回车或换行等符号)。 2. 然后依次输入各元素,以空格分割 3. 输出中所有标点符号都为英文符号 4. 目标元素在序列中的位置从1开始计算 样例输入: 6 145 23 1 0 234 99 样例输出: max:234,position:5 min:0,position:4 注意:以上输出后都有换行符,除此之外,任何多余输出皆视为错误。
参考代码:
#include<stdio.h>
int main()
{int n,i,a[100001],min=99999999,pos_min,max=-99999999,pos_max;int * A=&a[0];scanf("%d",&n);if(n<=0){printf("error");return 0;}for(i=0;i<n;i++){scanf("%d",(A+i));if(*(A+i)>max){max=*(A+i);pos_max=i+1;}if(*(A+i)<min){min=*(A+i);pos_min=i+1;}}printf("max:%d,position:%d\n",max,pos_max);printf("min:%d,position:%d\n",min,pos_min);return 0;
}
讲解:
经典寻最值问题,不过是用指针来完成。
求实求真,大气大为。