程序代码:
#include<stdio.h>
void main()
{
int i;
int fun(int a);
fun(i);
printf("%d\n",fun(i)); //printf()只有一个参数接收fun()的返回值, 因此只能输出一个数字.
}
int fun(int a) //这里fun()在执行的时候是返回多个值的, 1000内的4个水仙花数都能够求出. 但是,返回上面的printf()函数再看.
{
int j,k,l;
for(a=100;a<1000;a++)
{
j=a/100;
k=a%100/10;
l=a%10;
if(a==j*j*j+k*k*k+l*l*l)
return a;
}
}
一开始我也蒙圈了,自己写了个不调用自定义函数的,然后又对比你的代码,还是蒙圈, 单独测试fun()函数,发现没问题,
然后才想到printf()的问题.
关于printf()函数, 可以查看版主TonyDeng的相关帖子, 你会学到很多东西的.
附一份我自己对你的代码的改动版, 请指教:
程序代码:
#include "stdio.h"
int main()
{
int m;
int fun(int a);
for(m=100;m<1000;m++)
{
fun(m);
}
return 0;
}
int fun(int a){
int i,j,k,l;
j=a/100;
k=a%100/10;
l=a%10;
if(j*j*j+k*k*k+l*l*l==a)
printf("%d\n",a);
}
[
本帖最后由 vvvcuu 于 2014-6-11 00:31 编辑 ]