전체 글 145

[C언어] char 포인터로 배열 읽기

개요 프로그래밍 언어 : C언어 과제 수행 날짜 : 2020.10.16 과제 개요 : char 포인터로 int 배열의 값을 한 바이트씩 읽어서 출력 코드 #include int main() { int data[6] = { 256001,100000000,2147483647,3,4,5}; int i; for (int j = 0; j < 6; j++) { char *p = &data[j]; for (int k = 0; k < 4; k++) { i = (*p &0xFF) +((*(p + 1) & 0xFF) * 256) + (*(p + 2) & 0xFF) * (256*256) + (*(p+3)&0xFF)*(256*256*256); //printf("%3x ", *(p+k)&0xFF); } printf("1차원 배..

[C언어] 포인터로 배열 수정

개요 프로그래밍 언어 : C언어 과제 수행 날짜 : 2020.10.16 과제 개요 : char 포인터 변수를 이용하여 int 1차원 배열의 값을 5씩 빼서 다시 저장(int 배열의 요소는 5이상 255이하) 코드 #include int main() { int data[6] = { 5,20,30,40,250,60 }; int d = 5; for (int i = 0; i < 6; i++) { char *p = (char *)&data[i]; *p = data[i] - d; printf("%d ", data[i]); } } 결과 char *p = (char *)&data[i]; 와 같이 char 형식으로 캐스팅 연산을 하여 *p 는 data[i]의 첫 번째 바이트를 가리키도록 한다. 그리고 첫 번째 바이트에서..

[C언어] 입력 문자 빈도수 계산

개요 프로그래밍 언어 : C언어 과제 수행 날짜 : 2020.10.09 과제 개요 : 3차원 배열을 이용하여 입력받은 문자들의 빈도수를 계산 코드 #define _CRT_SECURE_NO_WARNINGS #include #include int main() { char statement[2][2][100]; char record[62] = { 0, }; int count; int a_s = 36; // a가 시작하는 record 배열의 인덱스 int A_s = 10; // A가 시작하는 record 배열의 인덱스 for (int a = 0; a < 4; a++) { scanf("%s", &statement[a / 2][a % 2][0]); // 문자열 4번 입력받기 } for (int b = 0; b < ..

[C언어] 2차원 배열 출력

개요 프로그래밍 언어 : C언어 과제 수행 날짜 : 2020.10.02 과제 개요 : 가로 세로를 입력받아 테두리가 있는 사각형 출력 코드 #include int main() { int col, row; char a[8][8]; scanf_s("%d %d", &col, &row); for(int i = 0; i 1 && j>1) && (i= row) { a[i][j] = ' '; } } } //출력 for(int c = 0; c < 64; c++) { if(c % 8 == 0) { printf("\n"); } printf("%c ", a[c/8][c%8]); } return 0; } 결과 8 x..

[C언어] 2차원 배열의 합

개요 프로그래밍 언어 : C언어 과제 수행 날짜 : 2020.10.02 과제 개요 : 포인터를 이용해서 2차원 배열 2개의 원소들을 각각 더하여 출력 코드 #include int main() { int arrA[5][6] = { {1,2,3,4,5,6}, {1,2,3,4,5,6}, {1,2,3,4,5,6}, {1,2,3,4,5,6}, {1,2,3,4,5,6} }; int arrB[5][6] = { {1,2,3,4,5,6}, {1,1,1,1,1,1}, {2,2,2,2,2,2}, {10,10,10,10,10,10}, {100,100,100,100,100,100} }; int *p = &arrA[0][0]; int *q = &arrB[0][0]; for(int i = 0; i

[C언어] 홀짝 구분

개요 프로그래밍 언어 : C언어 과제 수행 날짜 : 2020.09.25 과제 개요 : 숫자 비교 방식과 비트 비교 방식을 이용한 홀짝 구분 코드 1) 숫자 비교 방식 #include int main() { unsigned char c = 113; if ( c % 2 == 0) { printf("짝수"); } else { printf("홀수"); } return 0; } 2) 비트 비교 방식 #include int main() { unsigned char c = 45; if (c & 0x01) { printf("홀수"); } else { printf("짝수"); } return 0; } 결과 1) 숫자 비교 방식 변수의 홀짝을 숫자 비교 방식으로 구분하려면 변수를 2로 나눠서 나머지가 0인지 1인지를 구분..

[C언어] 2차원 배열의 주소

개요 프로그래밍 언어 : C언어 과제 수행 날짜 : 2020.09.25 과제 개요 : 2차원 배열의 주소와 상대 주소를 정리 코드 #include int i[3][4] = {100, 200, 300, 400, 500, 600, }; int main() { printf("%p\n", i); printf("%p %p %p\n", i+1, &i, &i + 1); printf("%p %p %p\n", i[0], i[1], i[2]); printf("%p %p %p\n", i[0] + 1, i[1] + 1, i[2] + 1); printf("%p %p %p\n", i[0] + 2, i[1] + 2, i[2] + 2); printf("%p %p %p\n", &i[0], &i[1], &i[2]); printf("%p..

[C언어] 비트 연산

개요 프로그래밍 언어 : C언어 과제 수행 날짜 : 2020.09.18 과제 개요 : 변수 A의 상위 4비트와 변수 B의 하위 4비트를 결합한 것을 A에 저장하고, 원래 변수 A의 하위 4비트와 변수 B의 상위 4비트를 결합한 것을 B에 저장하는 프로그램 코드 #include int main() { unsigned char A = 139; unsigned char B = 53; printf("처리 전 값 : A = %d, B = %d\n", A, B); unsigned A_l = A & 0x0f; //A의 하위비트 저장 A = A & 0xF0 ^ B & 0x0F; B = A_l > 4; printf("처리 후 값 : A = %d, B = %d\n", A, B); return 0; } 결과 1) 처리 전과..

[C언어] 출력 프로그램의 변수공간

개요 프로그래밍 언어 : C언어 과제 수행 날짜 : 2020.09.18 과제 개요 : 각종 출력 프로그램을 구현하고, 그 프로그램에서 사용된 변수들의 공간을 확인 1. 구구단 출력 1) 코드 int main() { char a, b; for( a = 1; a &a) { smallest = &a; } else if (smallest > &b) { smallest = &b; } else if (smallest > &c) { smallest = &c; } else if (smallest > &d) { smallest = &d; } } *smallest = *smallest + 1; printf("%d %d %d %d", a, b, c, d); return 0; } 2) 변수 공간 - 각 변수의 실제 주소 값과..

[C언어] 한글 / 영어 / 숫자 / 특수문자

개요 프로그래밍 언어 : C언어 과제 수행 날짜 : 2020.09.11 과제 개요 : 한글 / 영어 / 숫자 / 특수문자를 출력하고 판별하는 프로그램 1. 입력받은 문자열이 한글인지 영어인지 판별 1) 코드 int is_hangul(unsigned char st[]); int main() { int i = 0; //함수의 리턴값을 받을 변수 i 선언 char st[100]; //문자열을 저장할 배열 선언 scanf("%s", st); //문자열을 입력받는다. i = is_hangul(st); //is_hangul 함수를 수행하고 리턴값을 i에 저장 if(i == 0) //만약 리턴값이 0이면 한글 { printf("한글\n"); } else //만약 리턴값이 1이며 영어 { printf("영어\n"); ..