因为这个是只执行一次语句。
所以说,需要判断是不是有不能对立的情况,即都成立
下面代码
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
int a[1000];
void zuida(int i,int n,int max)
{
if(a[i]>max) max=a[i];
if(i==n-1) printf("%d",max);
else zuida(i+1,n,max);
}
int main()
{
int n,wanted,i=0,max;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
max=a[0];
zuida(1,n,max);
return 0;
}
当我zuida函数中之前我用的else if就不行
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
int a[1000];
void zuida(int i,int n,int max)
{
if(i==n-1) printf("%dx=",max);
else if(a[i]>max) maa[i];
else zuida(i+1,n,max);
}
int main()
{
int n,wanted,i=0,max;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
max=a[0];
zuida(1,n,max);
return 0;
}
也许因为冲突导致没有输出,但我感觉挺合理的,没有冲突。但就是出不去,整不出结果。说不定是因为我上面两个if 不是对立条件。
如果有大佬看到了并且知道解答,请不吝赐教。