如果条件成立,有什么办法不执行后面else if和else语句解决方案

如果条件成立,有什么办法不执行后面else if和else语句
#include   <stdio.h>
main(){
void   input(int   *a);
void   ver(int   *a);
void   output(int   *a);
int   str[10];
input(str);
ver(str);
output(str);
}
void   input(int   *a){
int   i=0;
while(i <10)
{
scanf( "%d ",a+i);
i++;
}
}
void   ver(int   *a){
int   i,max,min,t,ax,in;
int   *p;
p=a;max=*a;min=*a;
printf( "max=%d   min=%d\n ",max,min);
ax=0;   /*最大数的下标*/
in=0;   /*最小数的下标*/
for(i=1;i <10;i++)
{
  if   (*(p+i)> max)   {max=*(p+i);ax=i;}         /*记录最大数所在的下标*/
  if   (*(p+i) <min)   {min=*(p+i);in=i;}         /*记录最小数所在的下标*/
}
printf( "%d   %d   max=%d   min=%d   i=%d\n ",ax,in,max,min,i);
if   (in==0&&max==i-1)   /*如果条件成立,有什么办法不执行后面else   if和else语句,也就是提早结束本函数*/;
else   if(ax==0&&in==i-1)   {t=*(a+i-1);*(a+i-1)=*a;*a=t;}
else   {
t=*a;
*a=*(a+in);
*(a+in)=t;
if   (max!=*(a+ax))   ax=in;
t=*(a+i-1);            
puts( "not   end ");/*测试是否执行了else语名*/
*(a+i-1)=*(a+ax);
*(a+ax)=t;
}

}
void   output(int   *a){
int   i=0,*p;
p=a;
while(i <10){
printf( "%d\t ",*p++);
i++;
}
}

------解决方案--------------------
如果下面没有操作,直接return,反正你函数返回参数是void的
if (in==0&&max==i-1) return;
else ...
------解决方案--------------------
if (in==0&&max==i-1)
return
就OK了
------解决方案--------------------
if (in==0&&max==i-1) return;
如果下面的还是会执行,说明你的条件没有满足,如果执行到return,绝对退出,你可以这么改
if (in==0&&max==i-1) {
printf( "I will quit this function. ");//看有没有输出就知道了
return;
}
else.......

另外,希望你好好复习函数那一章

------解决方案--------------------
if (in==0&&max==i-1) return;
肯定不会有问题的,如果还有问题,执行到了你的测试语句那里,一定是你的条件搞错了,你的条件本身就是个else分支的条件,所以才会到那里去