C언어 배열 정리
·
C/Task
🌟 과제 42, 내림차순 데이터 집합에 대한 이진 탐색더보기① 이진 탐색이란?이진 탐색은 정렬된 배열에서 특정 값을 찾는 효율적인 알고리즘이다. 배열을 반으로 나누어 가며 탐색 범위를 좁혀가는 반식으로 작동한다 ② 일반적인 이진 탐색 VS 내림차순 이진 탐색일반적인 이진 탐색: 오름차순 정렬된 배열에서 사용내림차순 이진 탐색: 내림차순 정렬된 배열에서 사용 ③ 동작 원리배열의 중간 지점 확인찾는 값과 중간값 비교내림차순이므로, 찾는 값이 중간값보다 크면 왼쪽 절반 탐색찾는 값이 중간값보다 작으면 오른쪽 절반 탐색값을 찾을 때까지 반복 #include int main() { int target; // 찾으려는 값을 저장할 변수 int data[] = {10, 9, 8, 7, 6, 5, 4, 3..
C언어 포인터 개념정리_1
·
C/Concept
🌟 구조1, 스택더보기#include int b() { printf("b\n"); return 0;}int c() { printf("c\n"); return 0;}int a() { printf("a\n"); b(); c(); printf("a_end\n"); return 0;}int main() { printf("main\n"); a(); return 0;}// main// a// b// c// a_end ① 프로그램 시작main() 함수가 가장 먼저 실행 ②main() 실행"main" 출력a() 호출 ③ a() 실행"a" 출력b() 호출 → "b" 출력 후 종료c() 호출 → "c" 출력 후 종료"a_end" 출력a() 종료 후 다시 ..
06/12 반복구조
·
C/Task
🌟 예제 17번, 1부터 10까지 출력하기(1)더보기#include int main(){ int i; for (i=1; i 🌟 예제 18번, 1부터 10까지 출력하기(2)더보기#include int main(){ int i; for (i=1; i 🌟 예제 19번, 10부터 1까지 출력하기더보기#include int main(){ int i; for (i=10; i > 0; i--) { printf("%d ", i); }} 🌟 예제 20번, 1부터 100까지의 합 구하기더보기#include int main(){ int i; int sum = 0; for (i=1; i 🌟 예제 21번, 1부터 100까지 중 ..
C언어 소스코드 개념정리
·
C/Concept
🌟 C언어 소스코드와 메모리에 저장되는 바이너리의 의미더보기 ① char cNum = 65; char형 변수는 1바이트(8비트) 사용 10진수 65는 2진수로 01000001 따라서 변수 cNum은 주소 0x0061FF17에 01000001로 저장되었음. 이는 아스키코드 ‘A’에 해당0x0061FF17 : 01000001 (65, 'A') ② int iNum = 90;int형 변수는 4바이트(32비트) 사용10진수 90은 2진수로 00000000 00000000 00000000 01011010메모리에는 리틀 엔디언 방식으로 저장되므로, 가장 하위 바이트부터 차례로 저장0x0061FF22 : 01011010 (90의 가장 하위 바이트)0x0061FF23 : 000000000x0061FF24 : 00..
6/10 선택구조
·
C/Task
🌟예제 8번, 두 수 중 큰 수 찾기더보기#include int main(void){ int a, b; printf("정수(2개): "); scanf("%d %d", &a, &b); if(a>b) { printf("큰 수: %d", a);} else{ printf("큰 수: %d", b);} return 0;} 🌟예제 9번, 양수, 0, 음수 판별하기더보기/*양수, 0, 음수 판별하기*/#include int main(void){ int num; int a; printf("정수: "); scanf("%d", &num); a = num; if (a 0){ printf("양수다"); } else { printf("0"..
Linux 질의응답
·
Linux_Ubuntu/Task
1. 폰 노이만 구조와 컴퓨터 발전문제: 초창기 컴퓨터는 어떤 구조로 작동했으며, 폰 노이만 구조의 특징은 무엇인가? 입출력장치가 포함되며 컴퓨터는 어떤 방식으로 진화했는가?답변: 초기 컴퓨터는 회로를 직접 바꾸는 방식이었지만, 폰 노이만 구조에서는 프로그램을 메모리에 저장해 실행할 수 있게 되었음. 이를 ‘프로그램 내장형 구조’라고 하며, 이후 컴퓨터는 더 유연하고 효율적으로 발전했음. 입출력 장치도 천공카드에서 키보드, 터치스크린, VR 등 다양한 방식으로 발전해왔음. 2. 어셈블리어의 특징문제: 어셈블리어가 하드웨어에 종속적인 이유와, 고급 언어와의 주요 차이점을 설명하세요.답변: 어셈블리어는 기계어를 사람이 조금 더 이해하기 쉽게 만든 언어임. CPU에 따라 명령어가 달라서 특정 하드웨어에 종속..
우분투 수동 설치
·
Linux_Ubuntu/Setting
🌟 수동 설치 명령어더보기# 다운로드 받은 파일이 있는 경로에서, 터미널 실행sudo dpkg -i 패키지이름.deb # 파일이름 + tab 자동완성 🌟 패키지 삭제 명령어더보기sudo dpkg -r 패키지이름 # 패키지 제거 (설정 파일은 유지)sudo dpkg -P 패키지이름 # 패키지 및 설정 파일 모두 완전 제거 (purge)
6/9_C 순차구조
·
C/Task
🌟예제 1번, 덧셈과 곱셈하기더보기1. 변수 a에 3, 변수 b에 5를 저장.2. a+b, a * b의 값을 출력.#include int main(void){ int a = 3; int b = 5; printf("덧셈: %d", a + b); printf("\n곱셈: %d", a * b);} 🌟예제 2번, 두 수를 입력받아 덧셈, 곱셈 출력하기더보기1. 사용자로부터 a와 b를 입력받음.2. a + b 의 값을 출력.3. a * b 의 값을 출력.#include int main(void){ int a; int b; printf("정수(2개) : "); scanf("%d %d", &a, &b); printf("덧셈: %d", a + b); printf("\n곱셈: %d", a * b); ret..
6/9_C 우분투 환경설정
·
C/Setting
🌟 우분투, Visual Studio Code 설정더보기 1. Ubuntu C/C++ 개발 환경 준비sudo apt-get update; - 시스템의 패키지 목록을 최신 상태로 갱신합니다.- 새로 설치하거나 업그레이드할 수 있는 소프트웨어 정보를 최신으로 유지하기 위해 꼭 필요! sudo apt-get upgrade -y; - 시스템에 설치된 패키지를 최신 버전으로 업그레이드합니다.- '-y' 옵션은 사용자에게 물어보지 않고 자동으로 "yes"를 입력해줍니다. sudo apt-get install build-essential gdb -y; - gdb: GNU 디버거. C/C++ 프로그램을 디버깅하는 데 사용됩니다.- '-y': 자동으로 "yes"를 입력하여 설치 진행 gcc -v; - 설치된 GD..