很短的问题的求助
#include<stdio.h>int main()
{int a=1,b=1,c=1;
double sm=(a*a*a)+(b*b*b)+(c*c*c),tn=a*100+b*10+c;
for(;a<10;a++)
{
for(;b<10;b++)
{
for(;c<10;c++)
{sm=(a*a*a)+(b*b*b)+(c*c*c);
tn=a*100+b*10+c;
if(sm==tn)
printf("%d\n",(sm));
}
}
}
return 0;
}
没有error,执行结果是一次’\n' 自顶 for循环里面给a,b,c赋初值。
可能是因为在第一个for循环里面,b和c没有赋值,导致循环没有开启 应该是没有这样的数,a,b,c都在变,sm和tn都在变,值不定
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a=1,b=1,c=1;
double sm = (a*a*a)+(b*b*b)+(c*c*c),tn = a*100+b*10+c;
int flag=0;
for(;a<10;a++)
{
for(;b<10;b++)
{
for(;c<10;c++)
{
sm = (a*a*a)+(b*b*b)+(c*c*c);
tn = a*100+b*10+c;
if(sm==tn)
{
printf("%d\n",sm);
flag = 1;
//break;
}
}
}
}
if(!flag)
{
printf("没有这样的数\n");
}
system("pause");
return 0;
}
输出
没有这样的数
楼上用的什么编译器?代码和运行结果在一个界面啊 最后的魁拔 发表于 2020-1-27 11:07
应该是没有这样的数,a,b,c都在变,sm和tn都在变,值不定
题目要求输出1000以下所有符合a+b+c=a*100+b*10+c的数,不知道咋改 最后的魁拔 发表于 2020-1-27 11:07
应该是没有这样的数,a,b,c都在变,sm和tn都在变,值不定
多级循环体里不支持变量在等式左右同时变换吗?我现在感觉似乎是这样 轩攻re 发表于 2020-1-27 11:27
题目要求输出1000以下所有符合a+b+c=a*100+b*10+c的数,不知道咋改
那你这个到底是a,b,c的立方和还是就a,b,c的和啊 最后的魁拔 发表于 2020-1-27 11:35
那你这个到底是a,b,c的立方和还是就a,b,c的和啊
立方和 能把原题发一下吗 最后的魁拔 发表于 2020-1-27 14:00
能把原题发一下吗
假设一个数例如135,135=1+5+3,这种数叫完数。求1000以内所有完数 轩攻re 发表于 2020-1-27 15:03
假设一个数例如135,135=1+5+3,这种数叫完数。求1000以内所有完数
这个不就是水仙花数吗? #include <stdio.h>
int main()
{
int a,b,c;
int i;
printf("1000以内的水仙花数有:\n");
for(i=100; i<1000; i++)
{
a = i % 10; //分解出个位
b = (i / 10) % 10; //分解出十位
c = i / 100; //分解出百位
//判断三个数的立方数和是否等该数本身,若是就打印出来
if(a * a * a + b * b * b + c * c * c == i)
printf("%d\t\n", i);
}
return 0;
}
很简洁的程序被你整的那么复杂
页:
[1]