문제 1
다음과 같이 출력하는 프로그램을 만드시오.

A:
#include <stdio.h>
void main()
{
for (int i = 0; i < 10; i+=3)
{
for (int j = 1; j < 10; j++)
{
for (int k = 1; k < 4; k++)
{
printf("%d * %d = %d \t", k+i, j, (k+i )* j);
}
printf("\n");
}
printf("\n");
}
}

문제 2
다음과 같이 출력하는 프로그램을 만드시오.


A:
생각보다 많은 것을 고려해야하고 , 어렵기도 했다.... 더 쉽게 푸는 방법이 있을까?
#include <stdio.h>
void main()
{
int numMax, line;
printf("ZigZag 숫자 출력프로그램입니다.\n");
printf("출력하고자 하는 최대값을 입력하세요 : ");
scanf_s("%d", &numMax);
printf("한줄에 출력하고자 하는 숫자의 개수를 입력 : ");
scanf_s("%d", &line);
int num=1;
for (int i =0; i < (numMax /line)+1 ; i++)
{
if(i % 2 == 0)
{
for (int j = 0; j < line; j++)
{
if (num > numMax) break;
printf("%d\t", num);
num++;
}
}
else
{
num = num + line -1;
for (int j = 0; j < line; j++)
{
if (num > numMax)
{
printf(" \t");
num--;
}
else
{
printf("%d\t", num);
num--;
}
}
num += line +1;
}
printf("\n");
}
}
while로 풀면
#include <stdio.h>
void main()
{
int numMax, line;
printf("ZigZag 숫자 출력프로그램입니다.\n");
printf("출력하고자 하는 최대값을 입력하세요 : ");
scanf_s("%d", &numMax);
printf("한줄에 출력하고자 하는 숫자의 개수를 입력 : ");
scanf_s("%d", &line);
int num=1;
int i = 0;
while (i <= numMax / line)
{
int j = 0;
if(i%2==0)
{
while (j < line)
{
if (num > numMax) break;
printf("%d\t", num);
j++;
num++;
}
}
else
{
num = num + line -1;
while(j< line)
{
if (num > numMax)
{
printf(" \t");
j++;
num--;
}
else
{
printf("%d\t", num);
j++;
num--;
}
}
num = num + line +1;
}
printf("\n");
i++;
}
}

'# 개발 > C언어' 카테고리의 다른 글
c언어 연습문제 #7 (국비8일차) (0) | 2023.01.10 |
---|---|
c언어 #6 - 함수(function), 지역,전역,정적변수, 재귀호출 (국비8일차) (0) | 2023.01.10 |
c언어 연습문제 #5 (국비7일차) (0) | 2023.01.09 |
c언어 연습문제 #4 (국비6일차) (0) | 2023.01.06 |
c언어 #5 - 제어문(if, switch,for,while,break,continue) (국비6일차) (0) | 2023.01.06 |