반응형

언어 자료구조 알고리즘/C언어 예제 104

[C언어 소스] 삼각형 출력 - 반복문 연습

[C언어 소스] 삼각형 출력 - 반복문 연습 알고리즘n:←출력할 라인 수 입력반복(line:0→n) 반복(space:0→(n-line)) 공백 출력 반복(star:0→(2line+1)) '*' 출력 개행 소스코드 //2. 반복문 연습 - 삼각형 출력 //입력// 5 - n //출력// * 0- 공백 4, 별1, 개행// *** 1- 공백 3, 별3, 개행 // ***** 2- 공백2, 별5, 개행// ******* 3- 공백1, 별7, 개행 // ********* 4- 공백0, 별9, 개행 //공백 = n-line//별 = 2*line +1//개행=1 #include int main(void){ int n; int line, space, star; printf("삼각형 높이:"); scanf_s("%d"..

[C언어 소스] 정사각형 출력 - 반복문 연습

정사각형 출력 - 반복문 연습 알고리즘n:←출력할 라인 수 입력반복(i:0→n) 반복(j:0→i) '*'출력 개행 소스코드 //1. 반복문 연습- 정사각형 출력 // 입력// 5 //출력// *****// *****// *****// *****// ***** #include int main(void){ int n; int i, j; printf("출력할 라인 수:"); scanf_s("%d", &n);//입력 for (i = 0; i < n; i++)//n개 라인 { for (j = 0; j < n; j++)//n개의 *출력 { putchar('*'); } putchar('\n');//개행 } return 0;}

파서트리

파서 트리 파싱을 목적으로 하는 트리 파싱 원본을 목적에 맞게 변환하는 작업 A포맷으로 되어 있는 원본을 B포맷으로 변환하는 작업 예) 수식 파서 트리(피 연산자는 음이 아닌 정수, 연산자는 사칙연산에 한한다고 하자.) 먼저 중위 표기에 해당하는 정규식을 만들어보자. Numeric Expression!: 0 mid -expression!: operator: ||| operand: * number_char:||...| 위 첨자가 작성이 안되어서 다음과 같이 약속한다. 참고 * : a가 1번 이상 반복된다. 0 : a가 0번 이상 반복된다. 수식 파서 트리를 만들기 위해서 1. 원본을 입력받는다. 2. 토큰을 생성한다.(Lexical) :잘못된 토큰이 있으면 멈춤다. ==> 원본에 모든 요소가 operand..

큰 수의 덧셈, 곱셈

큰 수의 덧셈, 곱셈 C언어에서 정수형의 범위는 경우에 따라선 부족할 수도 있다. 이러한 경우에 직접 사용자 정의 타입을 정의하고 산술 연산에 대해서도 제공해야 할 것이다. 아래의 예는 효율성을 고려치 않고 어떠한 원리로 작성이 가능한지를 보여주는 예이다. 좀 더 효율적으로 정의를 하고자 한다면 사용자 정의 타입부터 사람의 관점이 아닌 컴퓨터의 관점에서 설계를 해야 할 것이다. 사용자 정의 타입 및 사용할 헤더파일#include #include #include typedef struct _Node Node; typedef struct _Node * Link; //Link는 노드의 위치 정보 struct _Node { int num; //수 int seat; //10의 seat승 Link after; //..

적분 공식을 이용하여 파이 구하기

파이의 정의는 반지름 1인 원의 면적과 한 변이 길이가 1인 정사각형의 면적 비율이다. 즉, 반지름 1인 원의 내적과 외적하는 도형의 넓이의 중간값을 통해 구할 수 있을 것이다. 위의 공식은 파이를 구하는 공식 중 하나이다. 이를 이용하여 파이를 구해 보자. 아래의 코드에 반복문의 반복 횟수를 높일 수록 정확한 PI값을 계산할 수 있다. #include int main(void) { double sum = 0; int k = 0; while ( k

singed 와 unsigned

먼저 78과 같은 표현의 타입은 signed 타입으로 취급합니다. 78U 와 같은 표현은 해당 표현의 타입이 unsigned 타입임을 나타내는 표현이고 (unsigned)-1 과 같은 표현은 -1(기본은 signed 타입임)을 unsigned 형으로 형변환함을 의미합니다. 참고로 정수형의 singed타입은 int혹은 signed int이며 unsigned타입은 unsigned 혹은 unsigned int 입니다. (int)2147483648U 이와 같은 표현은 2147483648에 해당하는 unsigned 형을 int형으로 강제 형변환을 하는 것을 의미합니다. 비교 연산에 있어 signed 와 unsigned 형의 비교는 signde형을 묵시적으로 unsigned형으로 변환한 후에 비교를 하게 됩니다. ..

16진수와 2진수 사이의 변환

아무런 의미가 없을 수 있는 코드일 수 있지만 한 번쯤 두뇌를 회전시키는 연습을 하기에는 적당한 것 같다. #include #include #include void PrintHexDigit(unsigned sum);//16진수 숫자 문자로 출력 void ConvertBinToHexInt(char *nums,unsigned u);//2진수를 16진수로 변환(정수부) void ConvertBinToHexFlo(char *under,unsigned u);//2진수를 16진수로 변환(실수부) void ConvertBinToHex(char *nums);//2진수를 16진수로 변환하여 출력 unsigned HexToDecimal(char hexdigit);//16진수 문자를 10진수로 변환 void ConvertH..

파서트리

파서 트리 파싱을 목적으로 하는 트리 파싱 원본을 목적에 맞게 변환하는 작업 A포맷으로 되어 있는 원본을 B포맷으로 변환하는 작업 예) 수식 파서 트리(피 연산자는 음이 아닌 정수, 연산자는 사칙연산에 한한다고 하자.) 먼저 중위 표기에 해당하는 정규식을 만들어보자. Numeric Expression!: 0 mid -expression!: operator: ||| operand: * number_char:||...| 위 첨자가 작성이 안되어서 다음과 같이 약속한다. 참고 * : a가 1번 이상 반복된다. 0 : a가 0번 이상 반복된다. 수식 파서 트리를 만들기 위해서 1. 원본을 입력받는다. 2. 토큰을 생성한다.(Lexical) :잘못된 토큰이 있으면 멈춤다. ==> 원본에 모든 요소가 operand..

new 연산자 오버로딩

new 는 오버로딩 가능합니다. 이에 대한 얘기를 하기 전에 먼저 특정 문법이 맞는지 틀린지에 대한 논쟁에 대해 어떻게 확인을 할 수 있을까를 느낄 수 있는 간단한 대화부터 소개합니다. 질문: "Who is a winner?" 답변: "I think that the Code is a winner!" MS초청 세미나 중에서 MS의 개발 이사의 답변... class hoo { public: hoo(void); ~hoo(void); void *operator new(size_t size) { return (void *)0x1000; } }; hoo::hoo(void) { } hoo::~hoo(void) { } int main() { hoo *h = new hoo(); return 0; } 그럼 어떨 때 쓸까?..

반응형