주석프로그램 중 실행하지 말라고 표시한 부분주석으로 표시되면 컴파일하기 전에 제거프로그램에 설명을 추가하거나 프로그램의 일부분을 잠시 실행하고 싶지 않을 때 사용// 한 문장을 주석 처리/* 여러 문장을주석 처리 할 때사용 */매크로프로그램의 수정이 용이상수들에 이름을 부여함으로써 프로그램의 이해를 도움매크로 속에 또 다른 매크로를 넣을 수 있음수식은 괄호로 감싸는 것이 좋음매크로 함수Macro with arguments함수와 같은 형태를 가진 매크로들인자 자리에 있는 것들이 해당 매개변수 위치로 치환#define MAX(x,y) ((x)>(y) ? (x) : (y))e = MAX(a+b,c+d);일반 함수는 값이 대입이 일어나므로 자료형을 맞춰야하지만 매크로 함수는 텍스트의 치환이므로 자료형과는 무관매..
Study/C
구조체여러 종류의 변수를 모아서 한 번에 만들 수 있도록 한 것배열과의 차이: 배열은 같은 종류의 변수를 여러 개 만들 때 사용예시 1: 평면 위의 점을 x, y 좌표로 표현구조체를 사용하지 않았을 때float a_x, a_y;float b_x, b_y;구조체를 사용했을 때struct point { float x; float y;} a, b;구조체를 사용하지 않으면 a_x와 a_y 등의 관계가 불명확함구성 요소가 많을수록 구조체가 유리해짐point는 구조체 태그, 구조체 태그가 선언되면 이후에 그 태그로 변수 생성 가능struct point { float x; float y;} a, b;// 구조체 변수 안의 멤버에 접근a.x = 3.0;b.y = a.x * 2;// 배열처럼 초기화..
문제머쓱이는 할머니께 생신 축하 편지를 쓰려고 합니다. 할머니가 보시기 편하도록 글자 한 자 한 자를 가로 2cm 크기로 적으려고 하며, 편지를 가로로만 적을 때, 축하 문구 message를 적기 위해 필요한 편지지의 최소 가로길이를 return 하도록 solution 함수를 완성해주세요.제한사항공백도 하나의 문자로 취급합니다.1 ≤ message의 길이 ≤ 50편지지의 여백은 생각하지 않습니다.message는 영문 알파벳 대소문자, ‘!’, ‘~’ 또는 공백으로만 이루어져 있습니다.풀이int solution(const char* message) { int answer = 0; while (message[answer] != '\0') answer++; return answer*2;}cha..
문제최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.제한사항0 0 ≤ array의 원소 풀이#include int solution(int array[], size_t array_len) { if (array_len == 1) return array[0]; int count[1000] = {0}; // 빈도를 저장할 배열 생성 int max_freq = 0; int mode = -1; int mode_count = 0; // 빈도 기록 for (int i = 0; i max_fre..
배열명C에서 일차원 배열은 메모리에 연속적으로 할당배열명은 그 배열의 첫 번째 배열 요소를 가리키는 주소 값(&a[0])*a는 *(&a[0])이므로 a[0]의 값이 됨(포인터형) + 정수를 했을 때 실제 연산 결과는 (포인터형) + 정수*(대상의크기) → a + i = &a[i]포인터형끼리의 뺄셈은 두 주소 사이에 들어가는 변수의 개수포인터와 1차원 배열int a[5], *b, i;int sum1=0, sum2=0, sum3=0, sum4=0;...b = a;for(i=0; ia와 b가 동일한 것은 아님b는 배열이 아니지만 배열처럼 사용할 수 있음위에서 sum1~4를 출력할 경우 결과는 모두 같음배열명: 기호, 값을 바꿀 수 없음포인터: 변수, 값을 바꿀 수 있음위 코드에서 'a = a+1'은 불가능하지..
문제첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요. 유클리드 호제법두 양의 정수 a, b (a > b)에 대하여 a = bq + r (0 ≤ r 즉, gcd(a, b) = gcd(b, r)r이 0이라면 a, b의 최대공약수는 bint euclidean(int a, int b) { while (b != 0) { int r = b; // b의 값을 r에 저장 b = a % b; // a를 b로 나눈 나머지를 b에 저장 ..