공부
-
[배열]2차원 배열 옮기기Study (etc)/C 2019. 2. 4. 01:15
현재 다차원 배열을 학습하고 있다. 이번 기록은 다차원 배열 중 2차원 배열을 옮기는 것에 관한 기록이다. arrA[2][4]의 값을 arrB[4][2]로 옮기고 출력하는 예제이다. 그림으로 나타내지는 않겠다.2차원 배열이 어떤 모양으로 값을 저장하는지 아는 사람이라면 머릿속으로 그려질 것이라 믿는다. 소스코드 #include int main() { int arrA[2][4] = { 1,2,3,4,5,6,7,8 }; int arrB[4][2]; int i, j; for (i = 0; i < 2; i++) { for (j = 0; j < 4; j++) { arrB[j][i] = arrA[i][j]; } } for (i = 0; i < 4; i++) { for (j = 0; j < 2; j++) { prin..
-
[정렬]버블 정렬Study (etc)/C 2019. 2. 3. 18:40
버블 정렬이란 배열에서 이웃한 수를 비교하여 큰 수를 마지막으로 보내며 정렬하는 방식의 정렬이다.워낙 유명한 정렬이기 때문에 자세한 설명은 생략하도록 하겠다. 배열을 공부할 때 정수 배열이 순서를 뒤집는 예제를 푼 적이 있었는데, 그 부분을 배울 때에도 임시 변수를 선언하여 임시 변수에 값을 저장해두고 값을 바꿨던 기억이 있다. 여기서도 그 임시 변수를 이용하고자 한다. 크기가 7인 정수형 배열에 정수 7개를 입력받아 입력받은 정수들을 버블 정렬로 각각 오름차순과 내림차순으로 정리해보도록 하겠다. 소스코드 - 오름차순 정렬 //오름차순 #include void Sort(int *ptr, int len) { int i, j; int temp; for (i = 0; i < len - 1; i++) { for..
-
[포인터]함수의 인자로 배열 전달하기 (1)Study (etc)/C 2019. 2. 3. 14:48
윤성우 저 '열혈 C 프로그래밍' 교재의 '도전! 프로그래밍 2' 의 도전 1번 문제이다. ▶ 도전 1 길이가 10인 배열을 선언하고 총 10개의 정수를 입력 받아서, 홀수와 짝수를 구분 지어 출력하는 프로그램을 작성해 보자. 일단 홀수부터 출력하고 나서 짝수를 출력하도록 하자. 단, 10개의 정수는 main 함수 내에서 입력 받도록 하고, 배열 내에 존재하는 홀수만 출력하는 함수와 배열 내에 존재하는 짝수만 출력하는 함수를 각각 정의해서 이 두 함수를 호출하는 방식으로 프로그램을 완성하자. 소스코드 #include void OddNum(const int * num,int len) //홀수 구별, 배열 내의 요소를 변경되지 않도록 const 선언 { int i; printf("홀수 : "); for (i..
-
[함수]세 변수에 저장된 값 바꾸기Study (etc)/C 2019. 2. 3. 00:43
오랜만의 C언어 포스팅이다.공부는 꾸준하게 하고 있기는 한데, '이걸 블로그에 올려도 되나?' 로 고민하다가 고민할 바에 그냥 하나라도 더 기록하자는 마음에작성하고자 한다. 포인터를 이용하여 함수 호출 방식 중 'Call-by-reference'를 이용한 함수 예제를 풀어보았다.윤성우 저 '열혈 C 프로그래밍' 교재에 있는 문제 중 하나이다. 사실 C언어에는 'Call-by-reference'가 존재하지 않는다는 내용의 글을 어디선가 주워 읽은 적이 있다.그 글 덕분에 이 부분을 공부하며 머릿속이 굉장히 복잡해졌다. 분명히 파라미터에서 주소값을 반환하는 & 연산자가 들어갈 뿐 아니라 함수 내에서도 주소값 참조 연산자인 *도 들어가지 않는가.이쯤 되면 참조에 의한 호출도 맞지 않을까? 하는 고민이 든다. ..
-
[반복문]continue, break의 활용Study (etc)/C 2019. 1. 7. 22:33
C언어 성취도 기록을 위한 두 번째 포스팅이다. 윤성우 저 '열혈 C 프로그래밍' 교재에서 Chapter 08 조건에 따른 흐름의 분기의 if, if~else 그리고 continue와 break를 공부하고 있었고, 교재에서 제시된 문제 하나를 자력으로 풀게 되어서 아직 모범 정답을 확인하지 않은 채로 블로그에 글을 작성해본다. ▶ 문제 구구단을 출력하되 짝수 단(2단, 4단, 6단, 8단)만 출력되도록 하자. 또한 2단은 2×2까지, 4단은 4×4까지, 6단은 6×6까지, 8단은 8×8까지만 출력되도록 프로그램을 구현해 보자. 이러한 문제이다. continue문과 break문을 사용해야 하며, 조건이 매우 복잡하여 고민을 하는데 많은 시간이 소요되었다. 구구단을 출력하는 것까지는 반복문을 이용해 해낼 수..
-
[반복문] 팩토리얼 (계승) 구하기Study (etc)/C 2019. 1. 7. 00:29
처음 해보는 프로그래밍 공부 포스팅인 것 같다. 아무래도 공적인 느낌보다는 개인적인 성취를 위해 작성하는만큼 경어를 사용하지 않으려고 한다. 또한 같은 이유로 보통 C언어를 공부하는 순서대로의 포스팅이 안 될 수도 있다. 처음으로 포스팅 해 볼 오늘의 성취는 for문을 이용한 팩토리얼, 그러니까 계승의 출력이다. 고등학교 수학 '확률과 통계'에서 쉽게 접해본 경험이 있을 것이다. 팩토리얼이란 n이란 수부터 1까지 곱해나가는 것을 말하며 !으로 표현한다. 즉, n!은 n 팩토리얼 또는 n의 계승이라고 읽으며 n × (n-1) × (n-2) × ... 3 × 2 × 1 의 느낌으로 계산한다.이 팩토리얼, 계승이라는 녀석은 반복문의 예제로 굉장히 많이 사랑받고 있는 것 같다. 사용중인 교재는 오렌지 미디어 출..