求问一道简单的CC语言题目

求一个由20项组成的等差数列,其偶数项的和为330,奇数项的和为300,而且每项都是正整数。我的代码如下:
#include "stdio.h"
int main()
{
int a,i,d,s1=0,s2=0;
for(a=1;a<=21;a++)
{
for(d=1;d<=4;d++)
{
for(i=0;i<10;i++)
{
s1+=a+d+2*i*d;
s2+=a+2*i*d;
}
if(s1==330&&s2==300)
for(i=0;i<20;i++)
printf("%4d",a+i*d);
}
}
}
最后程序没有错误但是输出为空。。

你的搜索范围0~24里面没有可行的解,而且这题目肯定要用动态规划,哪能这么死算。

对于不满足if的情况,没有对s1与s2的值重新置零,导致之后的循环无法满足输出的条件