■ n!값 구하기
#include <stdio.h>
int main(void)
{
int i,j,fac;
printf("수 입력:");
scanf("%d", &i);
j=i;
fac=1;
for (;;)
{
fac=fac*i;
i--;
if (i==1)
break;
}
printf("%d! = %d", j, fac);
}
■ 상수
1. 리터럴 상수
2. 매크로 상수
3. const
■ 함수
함수로 따로 빼는 이유: 프로그램의 유지/보수가 용이하다
전달인자와 반환값의 유무에 따라 4종류로 나눌 수 있다.
→ 전달인자 유, 반환값 유 / 전달인자 유 , 반환값 무 / 전달인자 무 , 반환값 유 / 전달인자 무, 반환값 무
반환값이 없어도 될때
출력, 포인터로 넘길때, 구조체로 넘길때 등
하나의 함수 안에는 하나의 리턴값만 존재 가능
■ 구조체
여러 타입의 데이터를 함께 묶어 놓은 것. 이 때 멤버는 관련있는 정보들이어야 함
(배열은 같은 데이터형을 갖는 여러개의 묶음임. 배열이 확장된 개념이 구조체)
typedef int UINT;와 같이 구조체를 typedef 로 선언해 놓으면
typedef struct{
int x;
char y;
}MYSTRUCT;
MYSTRUCT MyType; 과 같이 사용가능하다.
멤버에 접근: .과 -> 사용가능
■ 재귀함수
계속 변하는 파라미터 값을 받아서 반복해서 연산해야할 필요가 있을 때 사용
tip.
계속 변하는 값 안에서 일정하게 유지되어야 하는 값이 있을때 static지정자를 붙여 사용할 수 있음
■ 3개의 수 입력받아 최대값, 최소값 구하기
#include <stdio.h>
int a,b,c, max, min;
int Max(int a, int b, int c)
{
max = a > b ? a : b;
max = max > c ? max : c;
// (a>b?a:b)><?(a>b>a:b);
return max;
}
int Min(int a, int b, int c)
{
min = a > b ? b : a;
min = min > c ? c : min;
return min;
}
int main(void)
{
printf("3개의 수 입력:");
scanf("%d %d %d", &a, &b, &c);
printf("최대값: %d, 최소값: %d", Max(a,b,c), Min(a,b,c));
return 0;
}
■ 아래와 같이 출력
*****
****
***
**
*
#include <stdio.h>
int main(void)
{
int i,j,k;
for(i=0;i<5;i++)
{
for(j=0;j<i;j++)
{
printf(" ");
}
for(k=5;k>i;k--)
{
printf("*");
}
printf("\n");
}
return 0;
}
■ for문을 돌리기 위한 변수는 굳이 따로 선언하지 않아도 됨. for문의 초기화 값을 for문 내의 지역변수로 볼 수 있음.
예) for(int i=1; i<4; i++)
'PROGRAMMING > C' 카테고리의 다른 글
[수업후] 포인터 (0) | 2011.04.18 |
---|---|
[수업후] 배열 (0) | 2011.04.15 |
[기초] 재귀함수 (0) | 2011.04.12 |
[수업후] 기본연산자, printf() (0) | 2011.04.07 |
[기초] 문자열 처리함수(strcpy, strcat, strlen, strcmp) (0) | 2011.04.03 |