프로그래밍[Univ]/C언어 38

[C언어] 재귀 호출 함수 Recursion 팩토리얼 구연(재귀 함수이용)

1. 재귀 함수의 장단점 1) 재귀 함수는 불려진 만큼 메모리를 할당받는다(소비한다). 2) 재귀 함수는 함수가 종료되지 않은채 계속 함수를 호출한다. > 함수 내에 선포된 자동 변수들이 램에 새롭게 할당을 받는다. 3) 재귀 함수는 메모리를 많이 소비하여 처리속도가 느리다. 2. 재귀 함수의 예시 펙토리얼(!) 팩토리얼 n! = n*(n-1)! #include // Claculate factorial function long factorial(int x) { if ( x == 1 ) return 1; else return x*factorial(x-1); } int main() { int n; int c = 1; printf(" input number : "); c = scanf("%d",&n); whi..

[C언어소스]구조체.배열 이용. 성적 관리

#include #define stu_MAX 2 //학생수를 필요에 따라 변경해주세요. #define sub_MAX 2 //과목수를 필요에 따라 변경해주세요. struct grade { int hacban[8]; char name[20]; int sub[3]; int tot; float avg; }; main() { int i, j; int sum; float avg; struct grade str[stu_MAX]; for ( i = 0 ; i < stu_MAX ; i++ ) { sum = 0; printf("학번을 입력해주세요 : "); scanf("%s",&str[i].hacban); printf("이름을 입력해주세요 : "); scanf("%s",&str[i].name); for ( j = 0 ; ..

[C언어] 구조체 structure 2번째

1. 구조체의 변수의 초기화 구조체의 변수를 초기화 하려면 구조체 변수를 선언할 때 각 멤버에 대응하는 초기값을 { }안에 나열한다. ex) struct time { int hour; int min; int sec; } ; struct time first = { 11, 3, 10 } > hour = 11, min = 3, sec = 10 이 들어간다. 2. 구조체 간의 복사 동일한 구조체 형으로 선언된 구조체 변수는 구조체 단위로 모든 멤버들의 값을 복사할 수 있다. 구조체 변수 단위로 대입연산자('=')를 사용하면 멤버들이 1:1로 대응되어 값들이 한꺼번에 옮겨진다. ex) struct time { int hour; int min; int sec; } ; struct time first = {11,3,..

[C언어] 구조체 structure 레코드 recorde

1. 구조체란? 서로다른 형의 변수들을 하나의 이름으로 묶어 놓은 것! 즉, 변수의 집합체이다. 구조체의 다른 이름은 레코드 이다. 복잡한 자료를 다루는 것을 편리하게 해주는 장점이 있다. 2. 문법 struct name1{ int x; } name2 ; 1) struct 명령어 : 구조체의 시작을 의미한다. 2) name1 : 구조체의 이름을 나타낸다. 'structure tag' 라고 한다. 3) int x; : 앞에서도 흔히 사용하였던 변수 선언이다. 구조체의 변수들을 선언해준다. : 구조체에 속하는 변수들을 '멤버(members)'라고 한다. 4) name2 : 구조체의 변수를 선언하는 것이다. 구조체를 다룰 때 사용할 변수를 선언해주는 것이다. ※name1은 단순히 구조체의 이름일 뿐 없어도 되..

[C언어] 함수 기초

#include int power(int m, int n); main() { int i, j; int answer; scanf("%d",&i); scanf("%d",&j); answer = power(i,j); printf("Answer is %d\n",answer); } int power(int m, int n) { for ( ; n > 0 ; n-- ) { m *= m; } return m; } --------------------------------------------------------------------------------- 1. 함수의 선언 함수의 선언 형태는 다음의 형식을 따른다. 리턴값의 형식 함수이름(매개변수) { 선언문 문장들 } 리턴값의 형식은 함수를 끝내고선 메인함수로 남겨..

[C언어소스] 학생수와 과목수를 입력후 점수를 입력하여 평균을 계산하는 프로그램

#include main() { int sub, stu; int i, j; int a, b; int sum; float avg; printf("과목수는? : "); scanf("%d",&sub); printf("학생수는? : "); scanf("%d",&stu); int num[stu][sub]; for( i = stu ; i > 0 ; i-- ) { for ( j = sub ; j > 0 ; j-- ) { a = stu - i; b = sub - j; printf("학생 %d번의 %d번 과목의 점수를 입력하세요.\n",a,b); scanf("%d",&num[a][b]); } } printf(" 과목\t\t"); for ( i = sub ; i > 0 ; i-- ) { b = sub - i; printf..

[C언어]제어문 break continue exit(0) exit(number)

1. break break문은 switch문, for문, while문, do문에서 루프를 벋어나는 역활을 한다. break문은 가장 가까운 루프 하나를 벗어날수 있으며, 중첩된 루프일 경우 한번에 전체 루프를 빠져 나올수 없다. 2. continue continue문은 for문, while문, do문의 루프에서 다음 반복을 수행하기 위해 사용된다. while문과 do문에서는 비교부분이 다시 실행되고 for문에서는 다음 단계로 제어를 넘긴다는 것을 의미한다. continue문은 루프안에서만 사용될수 있고, switch문에서는 사용될 수 없다. --------------------------------------------------------------------------------- #include m..

[C언어] Switch문. Switch Function. Switch 함수.

#include main() { int c; printf("1~4중에 하나의 숫자를 입력해주세요 : "); scanf("%d",&c); switch(c) { case 1: printf("You selected number 1\n"); case 2: printf("You selected number 2\n"); case 3: printf("You selected number 3\n"); case 4: printf("You selected number 4\n"); default : printf("You selected other number\n"); } } --------------------------------------------------------------------------------- *위의..