/*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:调用函数fun判断一个三位数是否"水仙花数"。 在main函数中从键盘输入一个三位数,并输 出判断结果。请编写fun函数。 说明:所谓"水仙花数"是指一3位数,其各位数字立方和 等于该数本身。 例如:153是一个水仙花数,因为153=1+125+27。 ------------------------------------------------*/ #include <stdio.h> void bky(); int fun(int n) { /**********Begin**********/ /********** End **********/ } main() { int n,flag; scanf("%d",&n); flag=fun(n); if(flag) printf("%d 是水仙花数\n",n); else printf("%d 不是水仙花数\n",n); bky(); } void bky() { FILE *IN,*OUT; int iIN,i; int iOUT; IN=fopen("in.dat","r"); if(IN==NULL) { printf("Please Verify The Currernt Dir..it May Be Changed"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("Please Verify The Current Dir.. it May Be Changed"); } for(i=0;i<10;i++) { fscanf(IN,"%d",&iIN); iOUT=fun(iIN); fprintf(OUT,"%d\n",iOUT); } fclose(IN); fclose(OUT); }
时间: 2023-08-24 21:34:01 浏览: 98
这是一道关于判断三位数是否为水仙花数的程序设计题目。下面是代码:
```c
#include <stdio.h>
int fun(int n) {
int sum = 0; //累加器初始化为0
int temp = n; //用临时变量存储n
while (temp) {
int digit = temp % 10; //取出最低位数字
sum += digit * digit * digit; //累加该数字立方
temp /= 10; //去掉最低位数字
}
return sum == n; //返回是否相等
}
int main() {
int n,flag;
scanf("%d",&n);
flag=fun(n);
if(flag)
printf("%d 是水仙花数\n",n);
else
printf("%d 不是水仙花数\n",n);
return 0;
}
```
其中,主函数中输入一个三位数n,调用函数fun判断其是否为水仙花数。fun函数中,使用一个累加器sum,将n的每一位数字的立方累加到sum中,最后判断sum是否等于n。如果相等,则返回1,否则返回0。
阅读全文