프로그래밍/C언어

3강. 반복문

seungdols 2014. 3. 4. 23:21

반복문이 뭐냐.

 

Hi~ 를 3번 출력할거야.

 

그럼 printf 함수를 3번 써도 같습니다.

 

하지만 프로그램 코드는 라인수를 적게 하며 효율이 높은 코딩이 좋은 코딩습관이므로.

 

반복문을 사용합니다.

 

반복문은 3가지가 존재합니다.

 

while(탈출조건)

{

}

 

do

{

 

 }while(탈출 조건);

 

단. while, do~while은 반복문 스코프내에 증감문이 있어야 합니다.

그리고 탈출조건이 참 중요합니다.

조건문이라고 하는데 반복루프가 무한루프에 빠지지 않기 하기 위한 탈출 조건 = 조건문 입니다.

 

while 과 do ~ while 의 차이점은 조건문의 위치에 따라

 while은 시작부터 조건을 검사하여 불일치 하면 실행을 하지 않고 넘어 갈 수도 있습니다.

do~while은 무조건 한 번은 실행을 합니다.

그 차이점이 있습니다.

 

예제.

 

#include <stdio.h>


프로그램 사용자로부터 양의 정수를 하나 입력 받아서 그 수 만큼 hello world를 출력하라.

int main()
{

int input;
int i;

input = 0;
i = 0;
printf("정수 하나를 입력해주세요.\n");
scanf("%d", &input);

while(i < input)
{
printf("Hello world\n");
i++;
}
return 0;
}

 

/*프로그램 사용자로부터 양의 정수를 하나 입력 받아서 그 수 만큼 3배수를 출력하라.
*/

int main()
{

int input = 0 ;
int multiple = 0;
printf("정수 하나를 입력해주세요.\n");
scanf("%d", &input);


while(multiple++<input)
{
printf("%d ", multiple*3 );
}


return 0;

}

 

/*프로그램 사용자로부터 정수를 계속 입력받으며 값을 더해 나간다.
0을 입력 받으면 종료.

 

int main()
{

int input , sum;
sum = 0;
input = 1;


while(input != 0)
{
printf("정수 입력해주세요 exit input zero .\n");
scanf("%d" , &input);
sum += input;
}

printf("이제까지 입력된 정수의 합 : %d\n" , sum);

 

 

return 0;

}

 

/* 프로그램 사용자로부터 입력받은 숫자에 해당하는 구구단을 출력하되 역순으로.


int main()
{

int input;
int i;


printf("정수 입력해주세요 \n");
scanf("%d" , &input);
i = 9;
while(i>0)
{
printf("%d * %d = %d\n" , input, i , input*i );
i--;
}


return 0;

}

/*
프로그램 사용자로부터 입력 받은 정수의 평균을 출력한다.
조건 1 몇 개의 정수를 입력 할 것인지 사용자에게 묻고 그만큼 입력 받는다.
조건 2 평균값은 소수점 이하까지 출력한다.

*/


int main()
{
int i = 0;
int inputNum , inputData;
int sum = 0;
float average = 0.0f;

printf("How many input integers ? \n");
scanf("%d" , &inputNum);

while( i < inputNum )
{
printf("input integers ? \n");
scanf("%d" , &inputData);
sum += inputData;
i++;
}
average = sum/inputNum;
printf("average of input number : %.2f \n " , average);

}

/* 정수 5개를 입력 받아 합을 출력하는데 입력된 정수가 1이상이어야 한다.1을 입력 할시 다시 입력을 요구 받는다.
그리고 while 중첩으로 이 문제를 해결해본다.

*/


int main()
{
int input = 0 , sum = 0 , count = 0;

while(count < 5)
{
printf("input Five integers but  integer > 1 \n");
scanf("%d" , &input);
while(input == 1)
{
printf("input integers but  integer > 1 \n");
scanf("%d" , &input);
}
count++;
sum += input;
}


printf("sum of input integers %d \n" , sum);
return 0;
}

 

 

/*
*
0*
00*
000*
0000* 이와 같이 출력 되도록 while 중첩문으로 프로그램을 작성하라.
*/

int main()
{
int count = 0 , star = 0;
while(star < 5)
{
while(count < star)
{

printf("0");
count++;
}
count = 0;
printf("*");
printf("\n");
star++;

}
}


int main()
{
int i , j;
i = 2;
j = 1;
do{
do{
printf("%d * %d = %d\n" , i , j, i*j);
j++;
}while(j < 10);
j = 1;
i++;
}while(i < 10);

return 0;
}

/* 짝수 합을 구하는 프로그램 */
int main()
{
 int sum = 0 , i = 0;


 do{
  i += 2;
  sum += i;

 }while(i < 100);

 printf("%d" , sum);
 return 0;
}

 

 

 

for 문을 이용한 반복루프입니다.

 

for문은 초기문, 조건문,증감문이 한 줄로 되어 있어 가독이 좋고 ,

반복 횟수가 정해진 것이라면 for 문이 가장 최선의 방법입니다.

 

 

#include <stdio.h>

//int main(void)
//{
//
// int total = 0;
// int i, num;
//
// printf("0부터 input까지 덧셈, 숫자 입력 : \n");
// scanf("%d" , &num);
//
// for(i = 0; i < num + 1; i++)
// {
//  total+=i;
// }
// printf("0부터 %d까지 덧셈 결과 : %d\n " , num, total);
// return 0;
//}
// for 반복문은 반복횟수가 정해져 있을 경우에 최선이다.
/*
int main()
{

 int inputOne = 0, inputTwo =0;
 int i, sum = 0;

 printf("정수 2개를 입력하시오. 단 두번째 정수는 첫번째 정수보다 커야 한다. \n입력 : ");
 scanf("%d %d" , &inputOne , &inputTwo);

 for(i = inputOne; i <= inputTwo; i++ )
 {
  sum += i;
 }
 printf("입력된 정수 A부터 B까지 합은 : %d\n" , sum);

 return 0;
}
*/
int main()
{

 int input;
 int i,fatorial = 0;
 printf("팩토리얼 계산 n 값을 입력해주세요. : \n");
 scanf("%d", &input);
 fatorial = 1;

 for(i = 2; i <= input; i++)
 {
  fatorial = fatorial*i;
 }
 
 printf("팩토리얼 n! 값 : %d\n", fatorial);
 return 0;
}

반응형

'프로그래밍 > C언어' 카테고리의 다른 글

Yoda Condition 이란 방어코딩의 종류에 대해 알아보자!!  (0) 2014.10.02
ANCI C  (0) 2014.03.05
2강. C언어 입문기  (0) 2014.03.02
1강. C언어 네 이놈.  (0) 2014.03.02
1.5.2 Count Chracters 2st version  (0) 2011.11.23