
在数组中同时查找最大元素下标和最小元素下标,分别存放在main函数的变量max和min中。
代码如下
#include
void find(int *a,int *max,int *min)
{ int i;
*max=*min=0;
for(i=1;i<7;i++)
if(a[i]>a[*max])*max=i;
else if(a[i]<a[*min])*min=i;
return;
}
main()
{ int a[]={5,8,7,6,2,7,3};
int max,min;
find(a,&max,&min);
printf("%d,%d\n",max,min);
}
思路
①max和min为指针,设置了初值为0;
②if中,a[i]和a[*max]对比,原本a[i]和a[*max]都是下标对比,通过if去比较这两个元素谁大,说白了就是谁小谁就被换下去,因为这就是一个简单的替换 *** 作,我比你大,我就把你踢走,换成我,然后继续往上走,再找比我的大
③if else考点,if-else 语句的执行流程:首先判断关键词if后括号内条件表达式的值,如果该表达式的值为逻辑真(非 0),则执行 if 体(语句 A),而不执行 else 体(语句 B),然后继续执行 if-else 之后的其他语句;
如大佬有更好的思路欢迎评论!感激不尽
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)