|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
int main(void)
{
int count,j;
char judge;
printf("请输入一个整数:");
scanf("%d",&count);
printf("经验证,3 ~ %d 之间所有的整数均符合尼科彻斯定理!\n\n",count);
printf("是否打印所有的式子(y/n):");
scanf("%c",&judge); //不知道为什么,运行出来这个地方直接跳过了输入第二个y/n,直接程序结束了,为什么啊?
if(judge == 'n')
{
;
}
else if(judge == 'y')
{
for(j = 3;j <= count;j++)
{
int num2;
int begin = -1;
int flag1 = 1;
int i;
num2 = j * j * j;
while(flag1)
{
int sum = 0;
begin +=2;
for(i = begin;;i+=2)
{
sum = sum+=i;
if(sum == num2)
{
flag1 = 0;
break;
}
else if(sum > num2)
{
break;
}
}
}
int sum = 0;
printf("%d =",num2);
for(i = begin;sum <= num2;i+=2)
{
if(sum < num2)
{
sum += i;
printf(" %d +",i);
}
else
{
sum += i;
printf(" %d +",i);
printf("\b \n");
}
}
}
}
return 0;
}
加上一个getchar,过滤掉第一次输入的那个\n就好啦
- #include<stdio.h>
- int main(void)
- {
- int count,j;
- char judge;
-
- printf("请输入一个整数:");
- scanf("%d",&count);
- getchar();
- printf("经验证,3 ~ %d 之间所有的整数均符合尼科彻斯定理!\n\n",count);
- printf("是否打印所有的式子(y/n):");
- scanf("%c",&judge); //不知道为什么,运行出来这个地方直接跳过了输入第二个y/n,直接程序结束了,为什么啊?
-
- if(judge == 'n')
- {
- ;
- }
- else if(judge == 'y')
- {
- for(j = 3;j <= count;j++)
- {
- int num2;
- int begin = -1;
- int flag1 = 1;
- int i;
-
- num2 = j * j * j;
- while(flag1)
- {
- int sum = 0;
- begin +=2;
- for(i = begin;;i+=2)
- {
- sum = sum+=i;
- if(sum == num2)
- {
- flag1 = 0;
- break;
- }
- else if(sum > num2)
- {
- break;
- }
- }
- }
- int sum = 0;
- printf("%d =",num2);
- for(i = begin;sum <= num2;i+=2)
- {
- if(sum < num2)
- {
- sum += i;
- printf(" %d +",i);
- }
- else
- {
- sum += i;
- printf(" %d +",i);
- printf("\b \n");
- }
- }
- }
- }
-
- return 0;
- }
复制代码
|
|