반응형
for 문의 일반적인 형식이라면 이런 형식일 것이다.
for (int i = 1; i <= 10; i++) {
// 실행될 내용
}
위에 있는 for 문을 해석하자면,
'i가 1부터 시작해 10이 될 때까지 i를 1씩 증가시키면서' 라는 뜻을 가지고 있다.
저 for 문 안에 'printf("%d", i");' 를 적는다면 '12345678910' 이 출력될 것이다.
하지만 문제는 이중 for 문이다.
// 설명하기 쉽게 각 for 문에 이름을 붙였습니다.
for (int i = 1; i <= 10; i++) { // I
for (int j = 1; j <= i; j++) { // J
// j라는 값이 1부터 시작해, i와 크거나 같을때 까지, j를 1씩 증가시키며
}
// i라는 값이 1부터 시작해, 10까지, i를 1씩 증가시키며
}
I의 조건이 만족되고 있으면 J로 들어가 J의 조건대로 실행하고, J의 조건에서 벗어나면 다시 I를 실행하고 또 J를 실행하는 구조를 가지고 있다.
아래부터는 CodeUp 에서 풀기 어려웠다고 생각된 문제들을 주석과 함께 다시 풀어본 모습이다.
CodeUp 1228 : 비만도 측정 1
#include <stdio.h>
int main() {
double height, weight, bmi; // 실수형을 요구하였으므로 double 사용
scanf("%lf %lf", &height, &weight);
bmi = (weight - ((height - 100) * 0.9)) * 100 / ((height - 100) * 0.9); // BMI 공식을 이용해 계산
if (bmi <= 10) { // BMI 값이 10 이하일 경우
printf("정상"); // BMI 값이 20 이하일 경우
} else if (bmi <= 20) {
printf("과체중");
} else { // 나머지 경우
printf("비만");
}
return 0;
}
CodeUp 1258 : 1부터 n까지 합 구하기
#include <stdio.h>
int main() {
int n; // 1부터 n까지에서의 'n'
int sum = 0; // 합을 저장할 변수
scanf("%d", &n);
for (int i = 1; i <= n; i++) { // 1부터 시작해 1씩 증가하며, n보다 작을때까지
sum = sum + i
}
printf("%d", sum);
return 0;
}
CodeUp 1276 : 팩토리얼 계산
#include <stdio.h>
int main() {
int n;
int result = 1;
scanf("%d", &n);
for (int i = 1; i <= n; i++) { // 1부터 시작해 1씩 증가하며, n보다 같거나 작을때까지
result = result * i; // 팩토리얼 공식
}
printf("%d", result);
return 0;
}
CodeUp 1351 : 구구단 출력하기 2
#include <stdio.h>
int main() {
int start, end;
scanf("%d %d", &start, &end); // 시작 단과 끝 단 입력받기
for (int i = start; i <= end; i++) { // 시작 단부터 1씩 증가하며, 끝 단까지
for (int j = 1; j <= 9; j++) { // 1부터 1씩 증가하며, 9와 같거나 작을때까지
printf("%d*%d=%d\n", i, j, i * j);
}
}
return 0;
}
CodeUp 1355 : 삼각형 출력하기 3
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++) { // 1부터 시작해 1씩 증가하며, n보다 같거나 작을때까지
for (int j = 1; j < i; j++) { // 1부터 시작해 1씩 증가하며, i보다 작을때까지
printf(" "); // 공백 문자 출력
}
for (int k = i; k <= n; k++) { // i부터 시작해 1씩 증가하며, n보다 같거나 작을때까지
printf("*");
}
printf("\n");
}
return 0;
}
CodeUp 1361 : 별 계단 만들기
#include <stdio.h>
int main() {
int n, space = 0;
scanf("%d", &n);
for (int i = 1; i <= n; i++) { // 1부터 시작해 1씩 증가하며, n보다 작을때까지
for(int j = 1; j <= space; j++) { // 1부터 시작해 1씩 증가하며, space보다 같거나 작을때까지
printf(" ");
}
printf("\n");
space = space + 1
}
return 0;
}
반응형
'🖥️ 프로그래밍' 카테고리의 다른 글
행렬, 테이블을 넘어 그래프로 - Matplotlib (0) | 2022.05.29 |
---|---|
데이터 조작과 분석 + 테이블까지, pandas (0) | 2022.05.23 |
행렬관련 계산을 빠르게, NumPy (0) | 2022.05.17 |
코드 분석 - 포인터와 배열 (0) | 2022.04.17 |
보다 더 많은 양의 데이터를 편하게! - 배열과 문자열 (0) | 2022.04.12 |