상세 컨텐츠

본문 제목

c언어: 배열

코딩 기록

by jii 2022. 12. 9. 19:01

본문

인덱스: 배열 원소의 번호

 

  • 난수 발생시키기
scores[i] = rand() % 100;
  • 배열 원소의 개수 자동으로 계산하기
size = sizeof(scores) / sizeof(scores[0]);
  • 배열 복사하기: 일일이 복사하기!(배열의 비교도 동일)
for(i = 0; i < SIZE; i++) 
	a[i] = b[i];
  • 변수의 값 교환하기
temp = list[i]; 
list[i] = list[least];
list[least] = temp
  • 배열과 함수: 사본이 아닌 원본이 전달
  • 원본 배열의 변경을 금지하는 방법: const
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 100

void makeArray(int A[],int n) {
	srand(time(NULL));
	for (int i = 0; i < n; i++)
		A[i] = rand() % 100;

}
void printArray(int A[],int n) {
	for (int i = 0; i < n; i++)
		printf("%d ", A[i]);
	printf("\n");

}
int main() {
	int A[N];
	int n;
	scanf("%d", &n);
	makeArray(A,n);//배열을 함수에 전달할때는 배열의 이름만
	printArray(A, n);
	return 0;
}
  • 예제: 주사위 1000번 던져서 각 면이 나오는 횟수 출력
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 6
int main() {
	int freq[N] = { 0 };//나머지는 0으로 설정됨 
	int face;
	srand(time(NULL));

	for (int i = 0; i < 10000; i++) {//10000번
		face = rand() % 6;//0부터5까지
		freq[face] += 1;//1부터6까지
	}
	for (int i = 0; i < N; i++)
		printf("%d: %d\n", i + 1, freq[i]);
	return 0;
}

정렬

  • 선택 정렬: 정렬이 안된 숫자들중에서 최솟값을 선택해 첫 번째 요소와 교환
  • 순차탐색: 배열의 원소를 순서대로 하나씩 기준과 비교하여 원하는 값을 찾아가는 방법
  • 이진탐색:정렬된 배열의 중앙에 위치한 원소와 비교 되풀이
  • 2차원 배열

초기화 방법

int s[3][5] = { 
{ 0, 1, 2, 3, 4 }, // 첫 번째 행
{ 10, 11, 12, 13, 14 }, // 두 번째 행
{ 20, 21, 22, 23, 24 } // 세 번째 행
};

'코딩 기록' 카테고리의 다른 글

java : 2일차  (0) 2023.01.05
java : 1일차  (0) 2023.01.02
c언어:포인터  (0) 2022.12.10
c언어:배열 문제 풀이  (0) 2022.12.09
순환(recursion):재귀호출  (0) 2022.12.09

관련글 더보기

댓글 영역