/*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能:调用函数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 09:34:01 浏览: 45
这是一道关于判断三位数是否为水仙花数的程序设计题目。下面是代码:
```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。
相关问题
pyinstaller: error: unrecognized arguments: --add-dateimages/*;video/*;music/*-F
看起来你在命令行中使用了 `--add-date` 而不是正确的 `--add-data` 参数。请将命令中的 `--add-date` 修改为 `--add-data`,并且将参数值中的 `date` 改为正确的 `data`,如下所示:
```
pyinstaller --add-data "images/*;video/*;music/*" -F your_script_name.py
```
这个命令将会把 `images`、`video` 和 `music` 文件夹中的所有文件都打包到可执行文件中。`-F` 参数表示将所有依赖项都打包到一个单独的可执行文件中。
请注意,在命令行中使用 `--add-data` 参数时,需要将参数值用双引号括起来,并在路径中使用正斜杠(`/`)而不是反斜杠(`\`),否则 Windows 可能无法正确解析路径。
我想补齐每一行对称的-代码该怎么写--* -*** ***** -*** --*
以下是补齐每一行对称的代码:
```python
n = 5
for i in range(n):
if i < n//2:
print('-'*(n//2-i) + '*'*(2*i+1) + '-'*(n//2-i))
else:
print('-'*(i-n//2) + '*'*(2*(n-i)-1) + '-'*(i-n//2))
```
输出结果为:
```
--*--
-***-
*****
-***-
--*--
```