萌新求问C语言
#include "stdio.h"#include "math.h"
void main()
{
double a , b , c , x ;
while ( x <= 999 )
{
a = rand()%10; b = rand()%10; c = rand()%10;
x = a * 100 + b * 10 + c ;
if (x = pow( a , 3 ) + pow( b , 3 ) + pow( c , 3) )
printf ("%d\n" , x );
continue;
}
}
帮我看看哪里有问题,,,本来想找“水仙花数”的,结果输出三个零 每一行都是问题
#include "stdio.h" //引用库里的文件请使用<>
#include "math.h"
void main()
{
double a , b , c , x ; //这里为什么是double
while ( x <= 999 ) //X的初始值呢?
{
a = rand()%10; b = rand()%10; c = rand()%10;//你这是要干啥?随机搜寻1000次?问什么不用for呢
x = a * 100 + b * 10 + c ; //所以你x到底是拿来干啥的?
if (x = pow( a , 3 ) + pow( b , 3 ) + pow( c , 3) ) //这是个赋值语句,判断请用==
printf ("%d\n" , x );
continue; //continue是多余的
}
}
#include <stdio.h>
#include <math.h>
int main(){
int i;
for (i=100;i<1000;++i){
int a=i/100;
int b=i/10%10;
int c=i%10;
if (i==pow(a,3)+pow(b,3)+pow(c,3)){
printf("%d\n",i);
}
}
} 整数比较最好不要使用 power(),因为它会带来误差。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
int d , i , k , sum ;
for(i = 100 ; i < 1000 ; i ++) {
sum = 0 ;
k = i ;
while(k) {
d = k % 10 ;
k = k / 10 ;
sum += d * d * d ;
}
if(sum == i) printf("%d\n" , i) ;
}
}
Croper 发表于 2019-3-28 17:37
每一行都是问题
谢谢批评指正! jackz007 发表于 2019-3-28 18:28
整数比较最好不要使用 power(),因为它会带来误差。
谢谢! Croper 发表于 2019-3-28 17:47
好像不对诶,怎么把100到999所有数字都打印出来了 jackz007 发表于 2019-3-28 18:28
整数比较最好不要使用 power(),因为它会带来误差。
设错最佳答案了。。。 JHZRYS 发表于 2019-3-29 08:13
设错最佳答案了。。。
兄弟,不要纠结,我们已经看到你的选择了{:5_109:} JHZRYS 发表于 2019-3-29 08:13
好像不对诶,怎么把100到999所有数字都打印出来了
多半是你抄错了
把你运行的程序贴出来 Croper 发表于 2019-3-29 15:07
多半是你抄错了
把你运行的程序贴出来
好吧没问题。。。{:5_108:}
页:
[1]