정처기 실기_C언어

·2023년 7월 5일
post-thumbnail

🖥️ K-MOOC C언어 기초

🤍 2주차 - 배열

%d 앞에 숫자가 붙는다면 그만큼의 포맷으로 찍고, 오른쪽 정렬이 된다.

ex) %3d의 경우 => 1
ex) %-3d의 경우 => 1

✍️ 형변환

(float) 숫자 ( 숫자 앞에 (형 변환할 타입) 붙이기 )

❓ return 0 의 의미

main 함수는 int 를 반환하는 함수라서 정수를 꼭 반환해야 함. 마지막에 0을 리턴하는 것은 프로그램이 에러 없이 잘 종료가 되었다는 것을 표현하는 것!

✍️ 배열의 최댓값, 최솟값, 평균 구하기

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 100

int main() {

	int number[SIZE];
	int total=0;
	int max, min;
	float avg = 0.0;

	srand(time(NULL));
	for (int i = 0; i < SIZE; i++) {
		number[i] = (rand() % 100) + 1;
	}

	for (int i = 0; i < SIZE; i++) {
		printf("%3d\t", number[i]);
		if ((i + 1) % 10 == 0)printf("\n");
	}

	// 배열의 평균값 구하기
	for (int i = 0; i < SIZE; i++) {
		total += number[i];
	}
	avg = (float) total / SIZE;
	
	max = number[0];
	min = number[0];

	// 최솟값, 최댓값 구하기
	for (int i = 1; i < SIZE; i++) {
		if (max < number[i]) max = number[i];
		if (min > number[i]) min = number[i];
	}

	printf("avg = %f, max = %d, min=%d\n", avg, max, min);

	return 0;

}

🖱️ #define = SIZE

SIZE 설정 시 SIZE로 입력된 곳은 다 정의된 해당 숫자로 바뀐다.

#define SIZE 100

int main() {
	int number[SIZE];

✍️ 선택정렬

  • 제자리 정렬 알고리즘
  • 원소를 넣을 위치는 정해져 있고, 어떤 원소를 넣을 지 선택하는 알고리즘
  1. 주어진 배열 중 최솟값 확인
  2. 값을 맨 위에 위치한 값과 교체
  3. 그 이후의 값부터 동일한 방법으로 하나의 원소만 남을 때까지 교체 진행
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 1000

int main() {

	int number[SIZE];
	int most;
	int temp;

	srand(time(NULL));

	// 랜덤값 생성
	for (int i = 0; i < SIZE; i++) {
		number[i] = (rand() % 1000) + 1;
	}

	// 정렬 알고리즘
	for (int i = 0; i < SIZE - 1; i++) {
		most = i;
		for (int j = i + 1; j < SIZE; j++) {
			if (number[most] < number[j]) most = j;
		}
		temp = number[i];
		number[i] = number[most];
		number[most] = temp;
	}

	// 랜덤값 출력
	for (int i = 0; i < SIZE; i++) {
		printf("%5d\t", number[i]);
		if ((i + 1) % 10 == 0)printf("\n");
	}

	return 0;
  • 함수의 매개변수로 배열을 전달할 때 포인터 개념은 꼭 알아야 함

✍️ 버블정렬(Bubble Sort)

  • 서로 인접한 두 원소를 검사하여 정렬
  • i,i+1 번째 원소를 서로 비교하며 자료 정렬

🤍 참조

버블정렬 알고리즘 : https://gmlwjd9405.github.io/2018/05/06/algorithm-bubble-sort.html

profile
화이트해커 엘입니다😉

0개의 댓글