안녕하세요. 스마트 팩토리입니다.
c 언어[015] for반복문 if문, break, 1부터 100까지 합을 구하면서 중간에 합이 1000이 넘어갈 때의 값을 알아보는 프로그램, continue,1부터 100까지 홀수의 합을 구하는 프로그램에 대해 알아보겠습니다. for 문과 if문은 자주 어울려서 많이 사용하고, 또한 break를 통해서 반복되는 것을 중단하게 해 줍니다. 그 메커니즘을 이해하면 다양한 프로그램을 작성할 수 있습니다.
if 문 의 조건을 만족하면 실행문을 실행하고 break가 있어서 그대로 주어진 조건문 이나 반복문 등을 나가서 그 다음을 실행합니다.
다음은 1부터 100까지 합을 구하면서 중간에 합이 1000이 넘어갈 때의 값을 알아보는 프로그램입니다.
// 부분은 주석입니다.
break 문으로 인해서 1000을 넘어가는 전후의 값과 그 때의 합을 구하는데 1000 전후 값에서 정지되었습니다.
#include<stdio.h>
void main() {
int sum = 0;
int a = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
a = i;
if (sum >= 1000) {
printf("%d,%d\t", i - 1, sum - i);
printf("%d,%d\n", i, sum);
break;
}
}
//for (int i = a + 1; i <= 100; i++) {
// sum += i;
//}
printf("%d\n", sum);
}
주석을 해제하고 그대로 출력해 보았습니다.
1000이 넘어갈때는 45부터 입니다. 그 이후로 계속 연산을 하여 5050까지 나오도록 했습니다.
#include<stdio.h>
void main() {
int sum = 0;
int a = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
a = i;
if (sum >= 1000) {
printf("%d,%d\t", i - 1, sum - i);
printf("%d,%d\n", i, sum);
break;
}
}
for (int i = a + 1; i <= 100; i++) {
sum += i;
}
printf("%d\n", sum);
}
1부터 100까지 홀수의 합을 구하는 프로그램을 작성해 보겠습니다.
if 조건문을 만족하는 경우는 이후 실행문을 실행하지 않고 진행합니다.
여기서 실행문으로 조건에 있는 실행문이 아닌 외부 실행문을 의미합니다.
if조건문을 보면 2로 나누어서 나머지가 2인 경우 즉 짝수인 경우는 더해지지않고 for문의 증감식으로 진행합니다. 이는 다시 말해 해당 조건을 만족하는 경우는 건너 뛰는 역할을 합니다.
#include<stdio.h>
void main() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) { --->중괄호는 없어도 됩니다. 코드 수정을 용이하게 하기 위해서 넣어줍니다.
continue;
}
sum += i;
}
printf("1부터 100까지 홀수의 합은 %d\n입니다. ", sum);
}
더해지는 과정을 보기 위해서 출력해 보았습니다. 홀수가 더해지고 있는 것을 볼 수 있습니다.
조건식을 변경하면 짝수의 합도 간단하게 만들어 집니다.
짝수의 합과 홀수의 합에서 차이가 있다는 것을 알 수 있습니다.
그래서 그 더해지는 과정을 보기 위해서 역시 출력해 보았습니다.
2부터 짝수만 더해지고 있는 것을 볼 수 있습니다.
1부터 100까지의 합은 5050이고
홀수의 합은 2500
짝수의 합은 2550입니다.
1과 2를 순서쌍으로 묶으면 마지막은 99,100입니다. 총 순서쌍이 50쌍이 나오는데
짝수에서 홀수는 빼면 1 입니다. 그럼 결과적으로 1부터 100까지 수 에서 짝수에서 홀수는 뺀 값은 50이 되기 때문에
짝수의 합이 홀수의 합보다 50 더 크다는 것을 알수 있습니다.
'C 언어' 카테고리의 다른 글
c언어 실습 <a002> 이중 for 문을 이용한 다양한 모양 출력하기 (x모양) (0) | 2020.10.12 |
---|---|
c 언어[016] 이중for문 2단부터 9단까지 출력하는 프로그램 (0) | 2020.10.11 |
c 언어[014] switch - case문 - break 형식과 실행 (0) | 2020.10.10 |
c 언어[013] while 문과 do while 문, while문->for문으로 변환 (0) | 2020.10.09 |
c 언어[012] 데이터 크기 사이즈 알아보는 함수 sizeof(a) 변수의 사이즈 알아보기 (0) | 2020.10.09 |
댓글