1. #include <stdio.h>
  2. float result2 = 0;
  3.  
  4.  
  5. float sumNonRecursive(int N, float values[])
  6. {
  7. int i;
  8. float result = 0;
  9. for (i = 0; i < N; i++)
  10. result = result + values[i];
  11. return result;
  12. }
  13. float sumRecursive(int N, float values[])
  14. {
  15. if (N < 0)
  16. return result2;
  17.  
  18. result2 = result2 + values[N];
  19. sumRecursive(N - 1, values);
  20. }
  21.  
  22. void main()
  23. {
  24. float values[5] = { 1,2,3,4,5 };
  25. int N=sizeof(values)/sizeof(float);
  26. int N2 = sizeof(values) / sizeof(float) - 1;
  27. printf("%f\n", sumNonRecursive(N, values));
  28. printf("%f\n", sumRecursive(N2, values));
  29. }




배열 합구하는 재귄데

결과가 

15.000000

-nan(ind)

이런식으로 나와


디버거 돌려보니까 N<0일때 return을 해줬음에도 불구하고 line 19와 20을 계속 몇번 돌더라고

아마 런타임에러난것같은데 어떻게 고쳐줘야하냐?