Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 백트래킹
- 시뮬레이션
- 다익스트라
- 브루트포스
- 자료구조
- 구현
- 서브쿼리
- 트리
- 크루스칼
- 분할정복
- 플로이드-워셜
- join
- 다이나믹프로그래밍
- 다시
- GROUP BY
- 그리디
- 다이나믹 프로그래밍
- DFS
- 해시
- BFS
- 그래프 탐색
- 재귀
- 수학
- 우선순위큐
- 투포인터
- 그래프 이론
- 에라토스테네스의 체
- DP
- 누적합
- MST
Archives
- Today
- Total
기록하고 까먹지 말기
과제 5 - Control Flow 2 (6 ~ 9) 본문

일반적으로 많이 나오는 구구단 출력 프로그램이다.
#include <stdio.h>
int main(){
int n=0;
int i=0;
printf("Enter number to print table: ");
scanf("%d", &n); // inputs number
for(i=1; i<11; i++) // repeats 10 times
printf("%d * %d = %d\n", n, i, n*i); // print result with calculating
return 0;
}
원하는 단을 입력받고 for문을 통해 출력하면 간단히 해결 가능하다.
n * 1부터 시작되기 때문에 i는 1부터 시작되고, n * 10 에 끝나기 때문에 11까지 증가해야 한다는 점은 주의해야 한다.

수를 입력받고 그 수의 자릿수를 출력하는 프로그램이다.
while문을 통해 간단히 해결 가능하다.
#include <stdio.h>
int main(){
int n=0;
int result = 0;
printf("Ente any number: ");
scanf("%d", &n); // inputs number
do{
n = n / 10; // division of 10
result++; // after divising, ascending result
} while(n > 0); // repeats until remain value of n is larger than 0
printf("Total digits: %d", result); // print result
return 0;
}

0이 나올때까지 수를 입력받고 0이 나온 시점에서의 모든 수의 합을 구하는 프로그램이다.
while문과 if문을 혼용할 수도 있고 while문만을 가지고 해결 가능하다.
더 확실히 하기 위해 나는 if~break를 활용하여 문제를 풀었다.
#include <stdio.h>
int main(){
double n = 0;
double sum = 0;
do{
printf("Enter a number: ");
scanf("%lf", &n); // inputs number with double type
sum += n; // sum inputted number
if(n == 0){
printf("Sum = %.2f", sum); // print result if last inputted number is 0
break; // then break
}
} while(true); // repeat when break is called
return 0;
}

과제 1에 나온 문제와 동일한 문제이다.
수를 입력받고 for문을 통해 삼각형과 역삼각형을 출력하는 문제다.
#include <stdio.h>
int main(){
int n=0;
int i, j=0;
printf("Enter number of columns:");
scanf("%d", &n); // inputs number
for(i=1; i<(n); i++){ // upper trianble (ascending)
for(j=0; j<i; j++){
printf("*"); // print each line
}
printf("\n"); // goes next line after printing each line
}
for(i=n; i>0; i--){ // lower triangle (descending)
for(j=i; j>0; j--){
printf("*");// print each line
}
printf("\n"); // goes next line after printing each line
}
return 0;
}
역삼각형의 시작점을 잘 설정하는 것이 이 문제의 관건인 듯 하다.
헷갈리면 최대로 나오는 줄이 두줄이 되는 경우가 있기 때문이다.
'전공 > C' 카테고리의 다른 글
과제 6 - Function (6 ~ 9) (0) | 2021.06.22 |
---|---|
과제 6 - Function (1 ~ 5) (0) | 2021.06.21 |
과제 5 - Control Flow 2 (1 ~ 5) (0) | 2021.06.21 |
과제 4 - Control Flow (6 ~ 9) (0) | 2021.06.21 |
과제 4 - Control Flow (1 ~ 5) (0) | 2021.06.21 |