728x90
구구단을 for문을 이용해 나타내면 아래와 같다.
for (cur = 2; cur < 10; cur++)
{
for (i = 1; i < 10; i++)
{
printf("%d * %d = %d \n", cur, i, cur * i);
}
printf("\n");
}
위와 같은 코드를 짜면 2~9단까지 출력이 된다.
여기서 특정행만 출력하고 싶다면
if로 조건을 주고 continue문을 이용해 특정 조건을 건너뛰면 된다.
예를 들어 짝수단만 나타내고 싶다면
for (cur = 2; cur < 10; cur++)
{
if (cur % 2 != 0)
continue;
for (i = 1; i < 10; i++)
{
printf("%d * %d = %d \n", cur, i, cur * i);
}
printf("\n");
}
여기서 조건을 cur % 2 != 0에서 cur % 2 == 0 으로 짝수를 넘기니 홀수단만 출력된다.
(!가 반대의 의미인걸 생각하면 쉽다.)
짝수단 자기 자신까지만 출력하고 싶다면
break문을 이용해 i가 cur보다 커지면 탈출하도록 하면 된다.
for (cur = 2; cur < 10; cur++)
{
if (cur % 2 != 0)
continue;
for (i = 1; i < 10; i++)
{
if (cur < i)
break;
printf("%d * %d = %d \n", cur, i, cur * i);
}
printf("\n");
}
여기서 짝수행만 출력하고 싶다면
printf에 조건을 걸어 짝수일 때만 출력하면 된다.
for (cur = 2; cur < 10; cur++)
{
if (cur % 2 != 0)
continue;
for (i = 1; i < 10; i++)
{
if (cur < i)
break;
if(cur % 2 == 0)
printf("%d * %d = %d \n", cur, i, cur * i);
}
printf("\n");
}
홀수일 때는 다른 조건을 걸어주면 된다.
위에서 한 것들을 다 합쳐서
출력 종류의 번호 (1 모든 단 2 짝수 단 3 홀수 단)를 입력받아, 구구단을 출력할 때
짝수단은 짝수행만 홀수단은 홀수행만 출력하고, 해당 단의 곱셈에서 멈출 때를 코드로 나타내면 다음과 같다.
switch를 통해 조건을 나누고
분기를 편하게 하기 위해
기존 코드 안쪽의 for문을 dan이라는 함수로 만들었다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int dan(int cur, int i)
{
for (i = 1; i < 10; i++)
{
if (i > cur)
break;
if ((cur % 2) == (i % 2))
printf("%d * %d = %d \n", cur, i, cur * i);
}
printf("\n");
return (0);
}
int main(void)
{
int num;
int cur = 1;
int i = 1;
printf("출력종류의 번호를 입력하시요.\n");
printf("(1:모두, 2:짝수단, 3:홀수단): ");
scanf("%d", &num);
switch (num)
{
case 1:
while (cur++ < 9)
{
dan(cur, i);
}
break;
case 2:
while (cur++ < 9)
{
if (cur % 2 != 0)
continue;
dan(cur, i);
}
break;
case 3:
while (cur++ < 9)
{
if (cur % 2 == 0)
continue;
dan(cur++, i);
}
break;
}
return (0);
}
728x90
'코딩 > C, C++' 카테고리의 다른 글
C언어) quick sort (0) | 2021.06.23 |
---|---|
C언어) 소수 출력하기 (0) | 2020.10.05 |