728x90

분류 전체보기 518

4. JAVA의 표준입출력

1. JAVA에서 사용자로부터 입력을 받을 때는 Scanner 클래스를 이용한다. 2. Scanner 클래스는 java.util 패키지를 import해야 쓸 수 있다. 3. System.in 스트림을 매개변수로 하여 Scanner 객체를 생성한다. 4. hasNextLine()과 hasNextInt()는 내용이 있으면 true를 리턴한다. ctrl-c나 ctrl-z를 입력하면 false를 리턴한다. 5. 아래의 코드에서는 값을 비교하여 break문으로 빠져나온다. //Scanner 클래스는 util 패키지에 포함되어 있다. import java.util.Scanner; public class BasicIOStream { public static void main(String args[]) { //JAVA..

3. JAVA의 배열과 문자열

1. 자바의 배열은 참조형이고, C++의 배열은 기본형이기 때문에 서로 다르게 작동한다. 2. 자바에서는 배열을 선언할 때 크기를 선언할 수 없다. 3. 배열의 크기를 선언할 때는 new 연산자를 이용해야한다. 4. 배열을 선언과 동시에 초기화하면 자동으로 크기가 정해진다. 5. 배열은 참조형이므로 멤버변수와 메소드를 가지며, length 변수로 크기를 알 수 있다. 6. for-each 구문은 1차원 배열에만 사용 가능하다. 7. 자바의 문자열은 String 클래스로 구현된다. (문자열 상수도 마찬가지이다.) 8. String클래스는 참조형 변수지만 특별히 기본형 변수처럼 초기화가 가능하다. 9. 자바는 연산자 오버로딩을 제공하지 않지만 String 클래스에 대해서는 + 연산자가 재정의 되어있다. pu..

2. JAVA의 형변환

1. 자바의 정수 자료형은 byte < short < int < long 의 크기 관계를 갖는다. 2. 실수 자료형은 flaot < double의 크기 관계를 갖는다. 3. 같은 유형끼리는 크기가 큰 자료형에 작은 자료형을 넣을 수 있다. (묵시적 형변환이 일어난다.) 4. 실수에 정수를 대입할 수 있다. 5. 하지만 정수에 실수를 묵시적 형변환으로 대입할 수는 없다. 6. char형은 byte와 short을 제외한 정수,실수형 자료형에 대입할 수 있다. 7. 하지만 char형에 정수나 실수형을 묵시적으로 대입할 수는 없다. 8. 명시적형변환을 하면 크기가 작은 자료형에 크기가 큰 자료형도 넣을 수 있다. 9. 하지만 데이터의 손실이 일어날 가능성이 있다. 10. bool형은 다른 자료형에 명시적으로도 ..

1. 자바의 자료형

1. 자바의 기본 자료형은 "byte, short, int, long, char, float, double, boolean"의 8가지이다. 2. 각 자료형의 최소,최대값은 그 자료형과 관련된 클래스에 상수로 저장되어 있다. 3. 실수는 정규화된 값과 비정규화된 값으로 나뉜다. 부동소수점 IEEE-754 (참고) 4. 기본적인 숫자 상수는 'double'형으로 저장되며, 'float'형으로 저장하고 싶으면 숫자 뒤에 'f'나 'F'를 붙이면 된다. 5. 자바의 문자는 '유니코드'로 표현된다. 6. 실수를 0으로 나눈 값은 3가지 상수로 따로 저장되어 있기 때문에 실수를 0으로 나눠도 오류가 나지 않는다. 7. 불리언 값은 'true', 'false'로 표시하며, 다른 자료형은 boolean값으로 형변환이 ..

C(&C++) 실습 8. 입출력 속도를 BOJ에 최적화하기

문제 출처 backjoon 15552번 문제 0. 문제 ⅰ. N개의 A+B를 입력받고 결과를 출력하라. ■ 입력되는 값은 N은 1이상 1,000,000이하의 값이며 A,B는 1이상 1000이하의 값이다. ■ 프로그램 실행 시간 제한은 1초이다. ■ 온라인 저지나 코딩 테스트를 위해서 실행속도를 높이는 팁이 중심이 되는 문제. 1. 팁 ⅰ. 이제부터 시간과 메모리 제한도 조금씩 신경써야한다. #include using namespace std; int main() { int N; cin >> N; int a,b; for(int i = 0; i > a >> b; cout N; int a,b; for(int i = 0; i > a >> b; cout

C(&C++) 실습 6. 윤년 계산하기

문제 출처 backjoon 2753번 문제 0. 문제 ⅰ. 연도를 입력받고, 그 해가 윤년이면 1, 윤년이 아니면 0을 출력하는 프로그램을 작성하시오. ■ 윤년은 연도가 4의 배수이면서, 100의 배수가 아니거나 연도가 400의 배수일 때이다. ■ 예를들어 2000년은 4의 배수이면서 100의 배수이지만 400의 배수이므로 윤년이다. ■ 또한 2012년은 4의 배수이면서 100의 배수가 아니므로 윤년이다. ■ 입력되는 연도는 1 이상, 4000 이하의 자연수이다. Ⅰ. 코드 #include using namespace std; int main() { int a = 0; cin >> a; if(a%4 == 0) { if(a%100 == 0) { if(a%400 == 0) { cout

C(&C++) 이론 15. 사용자 정의 자료형 2) 공용체

내용 참고 YES C (정보공학연구소/생능출판사) 혼자 연구하는 C/C++ (Soen.kr/와우북스) Microsoft Docs (구 MSDN) C언어 이론 15 / 사용자 정의 자료형 2) 공용체 Ⅱ. 공용체 ■ 공용체는 같은 메모리 공간을 공유하는 변수들을 묶어놓은 것이다. ⅰ. 공용체의 선언 ■ 공용체를 선언할 때는 'union' 키워드를 사용한다. ■ 공용체를 선언하는 방법은 구조체를 선언할 때와 완전히 동일하다. ■ 즉, 4가지의 구조체 선언방법을 공용체에도 똑같이 적용할 수 있다. ■ 이렇게 선언한 공용체의 이름은 하나의 타입처럼 취급된다. ⅱ. 공용체의 특징 1. 메모리를 공유한다. ■ 공용체의 가장 큰 특징은 멤버들끼리 같은 공간(=메모리)를 공유한다는 것이다. ■ 아래와 같은 상황에서 구..

오류정보// 공용체에는 하나의 초기값만 사용할 수 있습니다.

E0266/ '~'가 모호합니다. reference to ‘~’ is ambiguous. ⅰ. 상황 ■ 식별자를 지정하고 사용하려 할 때 발생했다 ⅱ. 원인 ■ 겹치는 범위 안에 같은 이름의 식별자가 이미 존재할 때 발생한다. ■ namespace를 전역으로 사용하려 할 때 발생하는 경우가 있다. ⅲ. 해결책 ■ "std" namespace 안에는 생각보다 많은 식별자가 정의되어 있으니 std를 전역으로 선언하지 않는다. ■ 또는 애매한 기호의 이름을 변경한다. ⅳ. 오류가 발생한 코드 ■ "std" namespace 안에 data라는 식별자가 사용되고 있어서 발생했다. #include using namespace std; struct data{ char origin; }; int main(void){ ..

에러 모음 2021.06.16

C(&C++) 실습 5. (A+B)%C == ((A%C) + (B%C))%C // 증명

문제 출처 backjoon 10430번 문제 0. 문제 ⅰ. 세 수 A, B, C가 주어졌을 때, 아래의 네 가지 값을 구하는 프로그램을 작성하시오. ■ (A+B)%C는 ((A%C)+(B%C))%C 와 같을까? ■ (A×B)%C는 ((A%C)×(B%C))%C 와 같을까? ■ 참고로 나머지 연산자는 일반적인 분배법칙이 성립되지 않는다. ■ (A+B)%C와 (A%C)+(B%C)는 같지 않고, (A×B)%C와 (A%C)×(B%C)는 같지 않다. Ⅰ. 코드 #include using namespace std; int main() { int a, b, c; cin >> a >> b >> c; printf("(%d + %d) %% %d = %d\n",a,b,c,(a+b)%c); printf("((%d %% %d) ..

반응형