왜 계속 실행 결과가 0이 나오죠?
날놓아줘
질문 제목 : a+b+c+d=10이 되게하는 프로그램.질문 내용 :
소스---------------------------------------------------
#include stdio.h
#include stdlib.h
int main(int argc, char *argv[])
{
int a,b,c,d; // a,b,c,d 지정
a=b=c=d=0; // a,b,c,d는 0부터 시작
int sum; // 합계
sum=a+b+c+d;
int number; //경우의 수
number=0;
for( ;d=10;d++)
{
if(sum==10)
{
printf(%d, %d, %d, %d \n, a, b, c, d);
number=number+1; // 경우의수=경우의수 +1
}
if(d==10){
d=0;
c=c+1; // d가 10이 될 경우에 d를0으로 만들고 c에 c+1 대입
}
if(c==10){
c=0;
b=b+1;}
if(b==10){
b=0;
a=a+1;}
if(a==10){
break;}//a=10일경우 반복분 탈출
}
printf(경우의 수 : %d \n, number); system(pause);
return 0;
}
계속 0이 나오네요. 왜그렇죠?
-
츄릅
일단 for문이 돌아가면 d값이 올라가고 10이되면 c값이올라가고 그렇게가다가 a까지 10이되면 for문을 나오게 되잖아요.
그런데 a,b,c,d값이 어떻게 변하든지간에 sum의 값은 0으로 고정이 되어있습니다. 왜냐구요? 물론 for문안에 sum을 초기화(값의 대입)시키는 문장이 없거든요.
무튼 그러므로 sum을 초기화시켜주기위해서 sum=a+b+c+d;를 써주셔야합니다. -
또야
감사합니다 그런데 왜그렇죠?
-
베이비슈
for문안에 (if문바로앞쪽에) sum = a+b+c+d;를 써주셔야합니다.