본문 바로가기

개발 공부/C9

[C] 배열 배열을 사용하는 이유 서로 관련된 데이터를 서로 다른 공간에 저장하면 접근성이 떨어짐 프로그래밍(코드 작성) 시 로직을 구현할 수 있음 배열을 사용 조건 서로 관련된 데이터 같은 자료형 데이터의 개수를 '정확히' 알고있어야 한다 (정적 타입) '정적이다'란? 프로그램이 실행되기 전 모두 셋팅되어있어야 한다는 의미! #include void main() { // 타입 변수[배열의 길이] = {값1, 값2, ... }; int arr[3] = { 80, 100, 70 }; for (int i = 0; i < 3; i++) { printf("%d %d\n", arr[i], &arr[i]); printf("학생%d의 성적은 %d점입니다.\n", i + 1, arr[i]); } // 다양한 배열 선언 // 배열의.. 2021. 7. 15.
[C] 난수 생성 함수 난수 생성 함수 rand(); rand() % N : N으로 나누었을때의 나머지 즉 0, 1, 2, 3, ... , N-1 까지의 정수 값 처음 설정된 난수는 바뀌지 않는다. 컴퓨터의 시드값(고유번호)를 참고함 #include #include // rand() 함수가 정의되어 있는 전처리기 #include void main() { srand(time(NULL)); // srand() 함수는 무엇을 기준으로 할지 인자로 받는다. - time(NULL) 시간을 기준 인자로 받음 // srand() 함수는 rand() 위쪽에 작성되어야 함 //int dice = rand() % 6 + 1; // 1, 2, ... 6 //int num = rand() % 51 + 50; // 0~50 + 50 = 50~100 .. 2021. 7. 15.
[C] 연산자 (3) (비트) #include void main() { // 비트 연산자 // 8bit = 1byte // int 4byte 00000000 00000000 00000000 00000001 int a = 10; // 00001010 int b = 11; // 00001011 printf("a & b = %d\n", a & b); // & : 비트 연산자 AND. 둘 다 1(T) -> 1(T) // 00001010 => 10 printf("a | b = %d\n", a | b); // | : 비트 연산자 OR. 둘 중 하나라도 1(T) -> 1(T) // 00001011 => 11 printf("a ^ b = %d\n", a ^ b); // ^ : 비트 연산자 XOR. 비교 하는 두 값이 동일하면 0(F), 다르면 1(.. 2021. 6. 24.
[C] 자료형의 타입 변환 #include void main() { // 자료형의 타입 변환 int i = 3.14; // 소숫점 아래 숫자 버림. double -> int 자동 형변환 printf("i=%d\n", i); double res = 3.14; int num = (int) res; // 명시적 형변환. 데이터 손실 printf("num=%d\n", num); int stu1 = 81; int stu2 = 80; int stu3 = 14; double avg = (double) (stu1 + stu2 + stu3) / 3; // a / b는 int형 연산이기 때문에 (double)로 강제 타입 변환 해주어야 소숫점 아래 수까지 리턴 // 또는 (stu1 + stu2 + stu3) / 3.0 또는 (stu1 + stu2 .. 2021. 6. 24.
[C] 연산자 (2) (비교 / 논리 / 삼항) #include void main() { // 비교 연산자 // >, =, 1 // 거짓 F -> 0 printf("10>5 = %d\n", 10 > 5); // 10 > 5의 결과값(참이면 1, 거짓이면 0)이 %d에 저장됨. // 논리 연산자 (AND, OR, NOT) // &&, ||, ! printf("10>1 || 10>5 = %d\n", 10 > 1 || 10 > 5); printf("10>1 && 10>5 = %d\n", 10 > 1 && 10 > 5); // 삼항 연산자 == 조건 연산자 // [조건식] ? T : F int res1 = 10 100 ? 1 : 0; printf("%d %d\n\n", res1, res2); printf.. 2021. 6. 24.
[C] 연산자 (1) (대입 / 증감) #include void main() { int a = 10; // 대입 연산자(=)는 오른쪽에서 왼쪽으로 연산. 순서 중요! // 오른쪽의 결과값을 왼쪽 변수에 저장 a = a + 2; printf("a= %d\n\n", a); // 복합 대입 연산자 - 효율성이 높음 a += 2; printf("a= %d\n\n", a); // 증감 연산자 - 1씩 증감 // 디버깅표 (중요!) - 변수 값의 변화 추이를 기록 int b = 5; b++; printf("b= %d\n\n", b); ++b; printf("b= %d\n\n", b); b--; printf("b= %d\n\n", b); --b; printf("b= %d\n\n", b); int c = 10; int d = c++; // 대입 연산자 > .. 2021. 6. 24.