{
int n,j,k,l;
printf("INPUT n=");
do
{
scanf("%d",&n);
k=n*n-n+1,l=n*n+n-1;
for(j=0;k<=l;k+=2)
{ printf(" %d",k);
j+=k;
}
if(j=n*n*n) printf("sum=%d=n*n*n\n",j);
else printf("sum=%d!=n*n*n\n",j);
}
while(n!=0);
}
学长,这样写可以吗?
[此贴子已经被作者于2006-12-5 11:56:09编辑过]
----------------解决方案--------------------------------------------------------
首先我在这里谢谢chenfuyuxin。还有不知道你叫学长是叫哪为,如过是我的话那就太不敢当了,因为我还是一个刚上大一的计算机专业的学生。
还有就是,你写的这个程序看来是理解错了我说的题目的意思。题目的意思其实是:输入一个数,看这个数能否可以由连续的奇数相加而得。如果不能得的话,输出这个数不能够那样被拆分。而且不能用我上面说的那个,一个数的立方一定能够被连续的奇数相加而得的定理。 看来你是理解错了我说的意思。 不过还是要谢谢你费心思写了个程序!
----------------解决方案--------------------------------------------------------
while(scanf("%d",&num)!=EOF)这是个死循环!
只要你输入了字符,scanf的返回值总是1,不可能是EOF(-1).
----------------解决方案--------------------------------------------------------
以下是引用zzymoon在2006-12-6 14:00:56的发言:
while(scanf("%d",&num)!=EOF)这是个死循环!
只要你输入了字符,scanf的返回值总是1,不可能是EOF(-1).
麻烦你能够再说清楚一点吗?while(scanf("%d",&num)!=EOF 的意思不是输入一个整形的数然后再看是否是EOF吗?"不可能是EOF(-1). "是什么意思呢?我是个新手,麻烦说详细一点,谢谢.
----------------解决方案--------------------------------------------------------