c语言问题 数列问题提问

代码哪里错了,比答案的多1

#include  
int main()
{ 
     int len,i,num=0,j,k,z;
     int b[100];
     scanf("%d",&len);
     for(i=0;iscanf("%d",&b[i]);
     }
     
     for(i=2;ifor(j=0;jfor(z=0;zif(b[j]!=b[z]&&b[j]+b[z]==b[i])
     num+=1;
     }
     }
   printf("%d",num/2);
   return 0;
   
   }

你把2+2=4也一并算入了,所以答案多了一个

img

这一步循环条件写错了不是b[j]!=b[z],应该是 j!=z

某小学数学老师考查学生的计算能力,给出一个正整数数列,要求学生回答:

数列中有多少个数,等于其他两个数之和。

例如,正整数序列为1、2、3、4、5,因为3=1+2,4=1+3,5=1+4 ,所以有3个数等于其他两数之和,因此输出3.