C语言编程:求一个由20项组成的等差数列,其偶数项之和为330,奇数项之和为300,而且每项都是正整数。

如题所述

#include<stdio.h>
void main()
{
int a[20],i,j,r,m,n;
for(a[0]=1;a[0]<=20;a[0]++)
{
for(i=1;i<20;i++)
{
m=a[0];
n=0;
for(j=1;j<20;j++)
{
a[j]=a[j-1]+i;
if(j%2==0)m=m+a[j];
if(j%2==1)n=n+a[j];
}
if(m==300&&n==330)
{
for(r=0;r<20;r++)
{
printf("%-4d",a[r]);
if((r+1)%10==0)printf("\n");
}
}
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-13
#include<stdio.h>
void main()
{
int a[21],i,s1=300,s2=330,d;
d=(s2-s1)/10;
for(i=1;i<=19;i++)
a[i+1]=a[i]+d;
for(i=19;i>=1;i=i-2)
s1=s1-a[i];
a[1]=s1;
for(i=20;i>+21;i=i-2)
s2=s2-a[i];
a[2]=s2;
for(i=1;i<=19;i++)
a[i+1]=a[i]+d;
printf("\n公差为%d\n",d);
printf("数列为:\n");
for(i=1;i<=20;i++)
printf("%d\t",a[i]);

}
第2个回答  2011-04-13
那就用两个IF和for嵌套和两个自加可以实现,大概如下
main()
{
int a = 1 ,int b;
int i; int sum; /
{for (sum!=330,sum2!=300,++i,b=a+i);/*判断是否符合条件何谓330和300*/

{for(sum1 =1;sum1 <330)/*判断是否偶数和为330*/
{if ( a%2=0););/*求余运算*/
sum 1= sum1+a
else
{for
{
if (b%3=0,)
sum2=sum+b
printf(%d,%d,sum1,sum2)}
}
}
}
}
}
时间比较紧,没有调试,要是不行,就把程序发到[email protected]
我调好发去
相似回答