水仙花问题
#include<stdio.h>int main(){
int i, j , k, n, count=0;
printf("找到的水仙花数有:\n");
for(n=100;i<1000;i++){
i=n/100; j=n/10%10; k=n%10;
if(i*i*i+j*j*j+k*k*k==n){
printf("%d, ", n);
count++;
}
}
printf("\n水仙花个数=%d\n", count);
return 0;
}
然后在第五行for循环那i<1000处报错,想问下是什么情况
小兄弟,
循环变量不是n吗?
for(n=100;n<1000;n++) 昨非 发表于 2021-3-6 21:19
小兄弟,
循环变量不是n吗?
for(n=100;n
用n也不对啊,程序也不能运行 #include<stdio.h>
int main(){
int i, j , k, n, count=0;
printf("找到的水仙花数有: \n");
for(n=100;n<1000;n++) {
i=n/100; j=n/10%10; k=n%10;
if(i*i*i+j*j*j+k*k*k==n){
printf("%d, ", n);
count++;
}
}
printf("\n水仙花个数=%d\n", count);
return 0;
} 本帖最后由 墙里秋千墙外荡 于 2021-3-6 22:23 编辑
#include<stdio.h>
int main(){
int i, j , k, n, count=0;
printf("找到的水仙花数有:\n");
for(n=100;n<1000;n++){
i=n/100; j=n/10%10; k=n%10;
if(i*i*i+j*j*j+k*k*k==n){
printf("%d, ", n);
count++;
}
}
printf("\n水仙花个数=%d\n", count);
return 0;
}
运行结果(贴不了图啊)
找到的水仙花数有:
153, 370, 371, 407,
水仙花个数=4
Press any key to continue 1163028233 发表于 2021-3-6 21:36
用n也不对啊,程序也不能运行
请发送一下报错内容 1163028233 发表于 2021-3-6 21:36
用n也不对啊,程序也不能运行
我这边改了之后就可以运行了 #define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void test01()
{
int hunderd;//百位
int ten;//十位
int ge;//个位
for (size_t i = 100;i<1000;i++)
{
hunderd = i / 100%10;
ten = i / 10 % 10;
ge = i % 10;
//判断是否为水仙花数
if (i == (ge * ge * ge + ten * ten * ten + hunderd * hunderd * hunderd))
{
printf("%d", i);
}
}
printf("\n");
}
int main(int argc, char* argv[])
{
test01();
system("pause");
return 0;
} #include <stdio.h>
#include <math.h>
int main()
{
intm, i, count;
printf("请输入位数:");
scanf("%d", &m);
i = pow(10,m - 1);
count= 0;
while (i < pow(10,m))
{
int j = i;//将i赋值给j进行循环,方便判断是否符合水仙花数的要求以及最后输出正确数字
int sum = 0;
while (j > 0)
{
int n;
n = j % 10;//算出最后一位 ,因为不需要从第一个开始
j /= 10;//去掉最后一位
sum += pow(n, m);
}
if (sum == i)
{
printf("%d\n", i);
count += 1;
}
i++;
}
printf("一共有%d个符合要求数字\n", count);
return 0;
}
页:
[1]