代码哪里错了,比答案的多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也一并算入了,所以答案多了一个
这一步循环条件写错了不是b[j]!=b[z],应该是 j!=z
某小学数学老师考查学生的计算能力,给出一个正整数数列,要求学生回答:
数列中有多少个数,等于其他两个数之和。
例如,正整数序列为1、2、3、4、5,因为3=1+2,4=1+3,5=1+4 ,所以有3个数等于其他两数之和,因此输出3.