#include <stdio.h> //错误代码,区别在return 0;和exit(0); #include <stdlib.h> int is_daffodil(int n) { int a,b,c; int sum; if(n>=100&&n<=999) { a=n/100; b=(n/10)%10; c=n%100; sum=a*a*a+b*b*b+c*c*c; if(sum==n) return 1; else return 0; } else exit(0); } int main() { int n; scanf("%d", &n); printf("%s", ( is_daffodil(n) ? "Yes, it is a daffodil." : "No, it is not a daffodil." ) ); return 0; }
#include <stdio.h> int is_daffodil(int n) { int a,b,c; a=n%10; b=(n%100)/10; c=n/100; if(n>=1000||n<100) return 0; if(n==(a*a*a+b*b*b+c*c*c)) return 1; else return 0; } int main() { int n; scanf("%d", &n); printf("%s", ( is_daffodil(n) ? "Yes, it is a daffodil." : "No, it is not a daffodil." ) ); return 0; }
return 退出子程序,返回呼叫函数,主程序一般不会结束。除非是在main()函数里内直接执行 return,则两者的效果一样。
exit 则无论在那里执行,都会结束主程序的运行。
所以在返回时候,子函数应该返回0,而非返回逻辑--结束的0
主函数需要的0和exit给的不一样的