728x90
반응형
int a[10][20]에서 배열이 차지하는 메모리 공간의 크기는 얼마인가? int형은 4바이트라고 하자.
4. 800바이트
float a[100]으로 선언된 배열의 시작 주소를 1000번지라고 할 때, 배열의 10번째 요소의 주소는 몇 번지인가?
4. 1040번지
다음 배열 중에서 크기가 가장 큰 배열은?
2. double array2[10];
크기가 10인 배열 two[]를 선언하고 여기에 2의 제곱 값들을 저장해보자. for 루프를 이용하여 two[] 배열의 전체 요소의 값을 출력하는 프로그램을 작성하라.
#include <stdio.h>
int main()
{
int two[10];
for (int i = 0; i < 10; i++) {
int tmp = 0;
for (int u = 0; u <= i; u++) {
if (u == 0) {
tmp += 1;
}
else {
tmp *= 2;
}
}
two[i] = tmp;
printf("%d ", two[i]);
}
return 0;
}
본문에서 구조체로 복소수를 나타낸바 있다. 여기서는 복소수 a와 복소수 b를 받아서 a+b를 계산하는 함수를 작성해보자. 함수는 구조체를 반환할 수 있다. 알다시피 복소수는 real + imag*i와 같은 형태를 갖는다.
#include <stdio.h>
typedef struct {
int real;
int imag;
}Complex;
Complex add_comple(Complex a, Complex b);
int main()
{
Complex a = { 1, 3 };
Complex b = { 2, 4 };
Complex c = add_comple(a, b);
printf("%d + %di", c.real, c.imag);
return 0;
}
Complex add_comple(Complex a, Complex b) {
Complex tmp;
tmp.real = a.real + b.real;
tmp.imag = a.imag + b.imag;
return tmp;
}
크기가 n인 배열 array에서 임의의 위치 loc에 정수 value를 삽입하는 함수 insert()를 작성하라. 정수가 삽입되면 그 뒤에 있는 정수들은 한 칸씩 뒤로 밀려야 한다. 현재 배열에 들어있는 원소의 개수는 items개라고 하자(items는 전역변수로 선언되어 있고 n에 비해 충분히 작다고 가정하자)
void insert(int array[], int loc, int value) {
for (int i = items; i >= loc; i--) {
array[i + 1] = array[i];
}
array[loc] = value;
}
앞의 문제에서 구현한 insert() 함수의 시간 복잡도는?
o(n)
크기가 n인 배열 array에서 임의의 위치 loc에 있는 정수를 삭제하는 함수 delete()를 작성하라. 정수가 삭제되면 그 뒤에 있는 정수들은 한 칸씩 앞ㅍ으로 이동하여야 한다. 현재 배열에 들어있는 원소의 개수는 items개라고 하자
void delete(int array[], int loc) {
for (int i = loc; i < items; i++) {
array[i] = array[i+1];
}
}
앞의 문제에서 구현한 delete() 함수의 시간 복잡도는?
o(n)
728x90
반응형
'프로그래밍 > 컴퓨터공학' 카테고리의 다른 글
자료구조와 알고리즘 학습 노트 기초 (2) 재귀와 귀납적 사고 (0) | 2023.03.12 |
---|---|
프로그래밍 입문 학습 노트 (1) (0) | 2023.03.06 |
자료구조와 알고리즘 학습 노트 기초 (1) 자료구조와 알고리즘 (0) | 2023.03.04 |
두근두근 자료구조 3장 (스택) 연습문제 (1) | 2022.11.04 |
두근두근 자료구조 1장 (자료구조와 알고리즘) 연습문제 (0) | 2022.11.04 |