输入不多于500个大于0的整数到一维数组(当输入的数为0时结束输入)。
然后降序排序,最后将其中“水仙花数”输出到当前文件夹中的“outtxt文件。
提示:一个三位数,其各位数字立方和等于该数本身即为“水仙花数”。
例如:153=13+53+33。
示例:输入:
120 153 350 650 370 407 578
输出:(存入文件outtxt中的内容)
407 370 153
#include<stdio.h>
int main()
{
FILE *fp;
fp = fopen("out.txt", "w+");
printf("输出水仙花数:\n");
int i, a, b, c;
for (i = 100; i <= 999; i++) //整数的取值范围
{
int a = i % 10;//个位数
int b = (i / 10) % 10;//十位数
int c = i / 100;//百位数
if (i == a * a * a + b * b * b + c * c * c){ //各位上的立方和是否与原数n相等
printf("%d\t", i);
fprintf(fp, "%d ", i);
}
}
int fclose ( FILE * stream );
return 0;
}
```c
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int getsum(int n)
{
int sum = 0, ret = 0;
while (n)
{
ret = n % 10;
sum += (int)pow(ret, 3);
n /= 10;
}
return sum;
}
int main()
{
int n;
FILE*fp;
fp = fopen("ouut.txt", "w+");
scanf("%d", &n);
int*a = (int*)malloc(sizeof(int)*n);
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
if (a[i] == getsum(a[i]))
{
fprintf(fp, "%d ", a[i]);
}
}
fclose(fp);
fp = NULL;
return 0;
}
```求采纳