fork download
  1. #include <stdio.h>
  2.  
  3. int n, r;
  4.  
  5. int factorial (int n)
  6. {
  7. if (n==0)
  8. return 1;
  9. else if (n>0)
  10. return n*factorial(n-1);
  11. return 0;
  12. else
  13. printf("음수는 계산할 수 없습니다\n");
  14. }
  15.  
  16. int nPr (int n, int r)
  17. {
  18. if (n<0 or r<0)
  19. printf("음수는 입력할 수 없습니다\n");
  20. return 0;
  21. else if (r>n)
  22. printf("r은 n보다 클 수 없습니다\n");
  23. return 0;
  24. else if (r==0)
  25. return 1;
  26. else
  27. return (n*factorial(n-1))/((n-r)*factorial(n-r-1));
  28. }
  29.  
  30. int nCr (int n, int r)
  31. {
  32. if (n<0 or r<0)
  33. printf("음수는 입력할 수 없습니다\n");
  34. return 0;
  35. else if (r>n)
  36. printf("r은 n보다 클 수 없습니다\n");
  37. return 0;
  38. else if (r==0)
  39. return 1;
  40. else
  41. return (n*factorial(n-1))/((r&factorial(r))*((n-r)*factorial(n-r-1)));
  42. }
  43.  
  44. int main (void)
  45. {
  46. int select;
  47. printf("계산할 방식을 선택하세요\n");
  48. printf("----------\n");
  49. printf("1.팩토리얼\n2.nPr\n3.nCr\n");
  50. printf("----------\n");
  51. scanf("숫자 입력: %d\n", &select);
  52.  
  53. switch(select)
  54. {
  55. case 1 :
  56. int n;
  57. printf("팩토리얼 계산기\n");
  58. scanf("n값을 입력하세요: %d", &n);
  59. printf ("%d!=%d", n, factorial(n));
  60. break;
  61. case 2 :
  62. int n,r;
  63. printf("nPr 계산기\n");
  64. scanf("n값을 입력하세요: %d", &n);
  65. scanf("r값을 입력하세요: %d", &r);
  66. printf("%dP%d=%d", n, r,nPr(n, r));
  67. break;
  68. case 3 :
  69. int n,r;
  70. printf("nCr 계산기\n");
  71. scanf("n값을 입력하세요: %d", &n);
  72. scanf("r값을 입력하세요: %d", &r);
  73. printf("%dC%d=%d", n, r,nCr(n, r));
  74. break;
  75. default:
  76. printf("다시 입력하세요\n");
  77. }
  78. return 0;
  79. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In function ‘int factorial(int)’:
prog.cpp:12:5: error: ‘else’ without a previous ‘if’
     else
     ^~~~
prog.cpp: In function ‘int nPr(int, int)’:
prog.cpp:21:5: error: ‘else’ without a previous ‘if’
     else if (r>n)
     ^~~~
prog.cpp:24:5: error: ‘else’ without a previous ‘if’
     else if (r==0)
     ^~~~
prog.cpp: In function ‘int nCr(int, int)’:
prog.cpp:35:5: error: ‘else’ without a previous ‘if’
     else if (r>n)
     ^~~~
prog.cpp:38:5: error: ‘else’ without a previous ‘if’
     else if (r==0)
     ^~~~
prog.cpp: In function ‘int main()’:
prog.cpp:62:13: error: redeclaration of ‘int n’
         int n,r;
             ^
prog.cpp:56:13: note: ‘int n’ previously declared here
         int n;
             ^
prog.cpp:69:13: error: redeclaration of ‘int n’
         int n,r;
             ^
prog.cpp:56:13: note: ‘int n’ previously declared here
         int n;
             ^
prog.cpp:69:15: error: redeclaration of ‘int r’
         int n,r;
               ^
prog.cpp:62:15: note: ‘int r’ previously declared here
         int n,r;
               ^
stdout
Standard output is empty