#include <stdio.h>
int main(void)
{
int n,k;
double x,sum=1,p=1,a=1;
char q;
printf(\"다음은 e의 x승 값을 계산하는 방법입니다.\\n\\n\");
printf(\" k=0 ~ n에 대하여 (x^k)/k!을 합산함.\\n\\n\");
printf(\"원하는 x의 값을 입력: \");
scanf(\"%lf\",&x);
printf(\"\\n원하는 n의 값을 입력(1~30): \");
scanf(\"%d\",&n);
for(n;((n<=0)|(n>30));n){
printf(\"\\n원하는 n의 값을 입력(1~30): \");
scanf(\"%d\",&n);
}
printf(\"\\n===========================\\n\");
printf(\" n\\t 결과값\\n\");
printf(\"===========================\\n\");
for(k=1;k<=n;k++)
{
p=p/k;
a*=x;
sum+=p*a;
printf(\"%5d\\t %lf\\n\",k,sum);
}
printf(\"===========================\\n\\n\");
printf(\"계속하시겠습니까(Y/N)? \");
scanf(\"\\n%c\",&q);
for (q;((q==\'Y\')<1)&((q==\'y\')<1)&((q==\'N\')<1)&((q==\'n\')<1);q){
printf(\"\\n계속하시겠습니까(Y/N)? \");
scanf(\"\\n%c\",&q);
}
for(q;((q==\'Y\')>=1)|((q==\'y\')>=1);q)
{
printf(\"\\n원하는 x의 값을 입력: \");
scanf(\"%lf\",&x);
printf(\"\\n원하는 n의 값을 입력(1~30): \");
scanf(\"%d\",&n);
for(n;(n<=0)|(n>30);n){
printf(\"\\n원하는 n의 값을 입력(1~30): \");
scanf(\"%d\",&n);
}
printf(\"\\n===========================\\n\");
printf(\" n\\t 결과값\\n\");
printf(\"===========================\\n\");
a=1;
sum=1;
p=1;
for(k=1;k<=n;k++)
{
p=p/k;
a*=x;
sum+=p*a;
printf(\"%5d\\t %lf\\n\",k,sum);
}
printf(\"===========================\\n\\n\");
printf(\"계속하시겠습니까(Y/N)? \");
scanf(\"\\n%c\",&q);
}
return 0;
}
이런 프로그램입니다. 그런데 포문을 이용해서 계속하시겠습니까를 무한 반복하려는데 무한반복이 안되고 2번하면 끝납니다. 어떻게 바꿔야 하나요??
int main(void)
{
int n,k;
double x,sum=1,p=1,a=1;
char q;
printf(\"다음은 e의 x승 값을 계산하는 방법입니다.\\n\\n\");
printf(\" k=0 ~ n에 대하여 (x^k)/k!을 합산함.\\n\\n\");
printf(\"원하는 x의 값을 입력: \");
scanf(\"%lf\",&x);
printf(\"\\n원하는 n의 값을 입력(1~30): \");
scanf(\"%d\",&n);
for(n;((n<=0)|(n>30));n){
printf(\"\\n원하는 n의 값을 입력(1~30): \");
scanf(\"%d\",&n);
}
printf(\"\\n===========================\\n\");
printf(\" n\\t 결과값\\n\");
printf(\"===========================\\n\");
for(k=1;k<=n;k++)
{
p=p/k;
a*=x;
sum+=p*a;
printf(\"%5d\\t %lf\\n\",k,sum);
}
printf(\"===========================\\n\\n\");
printf(\"계속하시겠습니까(Y/N)? \");
scanf(\"\\n%c\",&q);
for (q;((q==\'Y\')<1)&((q==\'y\')<1)&((q==\'N\')<1)&((q==\'n\')<1);q){
printf(\"\\n계속하시겠습니까(Y/N)? \");
scanf(\"\\n%c\",&q);
}
for(q;((q==\'Y\')>=1)|((q==\'y\')>=1);q)
{
printf(\"\\n원하는 x의 값을 입력: \");
scanf(\"%lf\",&x);
printf(\"\\n원하는 n의 값을 입력(1~30): \");
scanf(\"%d\",&n);
for(n;(n<=0)|(n>30);n){
printf(\"\\n원하는 n의 값을 입력(1~30): \");
scanf(\"%d\",&n);
}
printf(\"\\n===========================\\n\");
printf(\" n\\t 결과값\\n\");
printf(\"===========================\\n\");
a=1;
sum=1;
p=1;
for(k=1;k<=n;k++)
{
p=p/k;
a*=x;
sum+=p*a;
printf(\"%5d\\t %lf\\n\",k,sum);
}
printf(\"===========================\\n\\n\");
printf(\"계속하시겠습니까(Y/N)? \");
scanf(\"\\n%c\",&q);
}
return 0;
}
이런 프로그램입니다. 그런데 포문을 이용해서 계속하시겠습니까를 무한 반복하려는데 무한반복이 안되고 2번하면 끝납니다. 어떻게 바꿔야 하나요??
정답