안녕하세요. 스마트팩토리입니다.
c 언어[009] for 반복문 for(int i=0;i<=10;i++){}; 1~10까지 합 구하는 프로그램. 두수를 입력하여 두수까지의(두수포함) 합 구하는 프로그램을 알아보겠습니다.
1. for 반복문
for 반복문은 무한 루프를 하기 위한 가장 기본이 아닌가 생각합니다. 동일한 작업을 반복하기 위해서 초기값과 조건식, 증감식을 설정하고 그 범위를 일정한 규칙에 의해서 반복 하게 합니다. 이는 연산작업을 할때 상당히 유용합니다.
변수 선언에 대한 것은 익히 알고 있으니 바로 설명에 들어가도록 하겠습니다.
i=1 부터 시작하여 10과 같을때 까지 즉 조건식을 만족할때 까지 { 내용 } 을 반복연산합니다.
sum+=i는 sum =sum+i 를 의미하여 처음 sum =0이 때문에
i=1 일때 sum=sum(=0) +i(=1)이어서 sum=1 이 됩니다. 이후 증감식으로 가서 i++ -->i 를 1씩 증가시킵니다.
그런데 여기서 조건식을 참을 만족할때 { }안의 내용을 실행합니다.
결과적으로
i=1 일때 sum=1
i=2 일때 sum=3
.. 반복
i=10 일때 sum= 55
i=11일때 조건식이 거짓이 되어 for 반복문을 빠져나옵니다.
그럼 for문을 나오면 i=11 , sum은 i=10까지의 합까지 더해진 값입니다.
그것을 출력하면 sum=55가 됩니다.
#include<stdio.h>
void main() {
int sum=0;
for (int i = 1; i <=10; i++) --> for 반복문 입니다.
{ sum += i; } --> 내용
printf("1부터 10까지의 합은 %d\n", sum); --> 1부터 10까지의 합을 출력합니다.
}
2) 두수를 입력 받아 입력수 부터 그다음 입력한 수까지의 합을 구하는 프로그램
처음 입력하는 숫자가 두번째 입력하는 수보도 작아야 합니다. 즉 오름차순 입력을 해야 함.
입력하는 수의 크기 차이 없이 하려면 if 조건문을 사용애야 함. 이는 다음 시간에 하도록 하겠습니다.
#include<stdio.h>
void main() {
int a,b, sum=0;
puts(" 두 수를 입력해 주세요 "); ---> 두수를 입력해 주세요를 출력
scanf_s("%d", &a); ---> 첫 숫자
scanf_s("%d", &b); ---> 두번째 숫자
for (int i = a; i <=b; i++) --> 처음 입력한 숫를 시초값으로 설정, 조건식은 두번째 입력한 수까지 증감식은 역시 1씩 증가
{sum += i;}
printf("%d부터 %d까지의 합은 %d\n",a,b,sum);
}
1부터 100까지 두 수를 입력하기 때문에 쉽게 구해집니다.
i 값과 sum 값을 출력해 보았습니다. 오름차순으로 더해짐을 알 수 있습니다.
3. 중간에 증감식을 감소하는 것으로 한 경우
#include<stdio.h>
void main() {
int a,b, sum=0;
puts(" 두 수를 입력해 주세요 ");
scanf_s("%d", &a);
scanf_s("%d", &b);
for (int i = b; i >=a; i--) --> 증감식을 작아지는 경우로 하기 위해서 초기값을 두번째 입력한 값으로 설정하고 조건을 처음 숫자보다 클때를 설정했습니다. 그럼 감소하기 때문에 결과적으로 내림차순으로 더해지게 됩니다.
{sum += i;}
printf("%d부터 %d까지의 합은 %d\n",a,b,sum);
}
내림 차순으로 더해짐을 알 수 있습니다.
댓글