1) 문제:
2부터 9까지의 수 중 2개를 입력받아 입력받은 수 사이의 구구단을 출력하는 프로그램을 작성하시오.
단, 반드시 먼저 입력된 수의 구구단부터 아래의 형식에 맞게 출력하여야 한다.
입력 예: 5 3
5*1=5 4*1=4 3*1=3
5*2=10 4*2=8 3*2=6
...
2) 코드:
1 #include <stdio.h>
2
3 int main(void)
4 {
5 int num1;
6 int num2;
7 int i;
8
9 printf("enter first number:");
10 scanf("%d",&num1);
11
12 printf("enter second number:");
13 scanf("%d",&num2);
14
15 if(num1<num2){
16 for(i=1;i<10;i++){
17 for(;num1<=num2;num1++){
18 printf("%d*%d=%d", num1,i,num1*i);
19 }
20 }
21 }
22
23 else if(num1>num2){
24 for(i=1;i<10;i++){
25 for(;num1>=num2;num1--){
26 printf("%d*%d=%d ", num1,i,num1*i);
27 }
28 }
29 }
30
31 return 0;
32 }
위에 문제에 대한 답으로 이런 코드를 작성하였는데 실행하면
3*1 4*1 5*1 까지만 나오고 종료 됩니다.
제 생각에는
for(;num1<=num2;num1++){
printf("%d*%d=%d", num1,i,num1*i);
}
이 문장이 끝나고 다시 이 for(i=1;i<10;i++)문으로 돌아가 i=2,i=3 ... 이렇게 되야 될거 같은데 아닌가요?
|