CodeUp 기초100제
입출력
scanf,printf
scanf("%d",&n);
printf("%d",n);
%d,%u,%c,%s 과 같이 입출력의 형식지정이 가능하다.
% 기호가 앞에 붙는 문자를 형식 지정자(format specifier)라고 하며, 그 위치에서 지정한 형식으로 값을 출력해 준다.
따라서, 퍼센트 문자 %를 출력하기 위해서는 %%로 출력해 주어야 한다.
-
printf(" \' ");
작은따옴표,큰따옴표와 같이 문장을 나타내기 위한 기호 자체를 출력하기 위해서는 앞에 \를 붙여야 한다. -
visual studio에서 scanf를 사용하려면 최상단에 #define _CRT_SECURE_NO_WARNINGS 입력해야함,
- 데이터형의ㅣ 범위
int: –2,147,483,648 ~ 2,147,483,647
unsigned int: 0 ~ 4,294,967,295
double: 1.7E+/-308(15개의 자릿수)
float: 3.4E+/-38(7개의 자릿수)
char: -128 ~ 127
long: –2,147,483,648 ~ 2,147,483,647
형식 지정자
%d -> 10진수 정수 (4바이트) -> int
%ld -> 10진수 정수 (8바이트) -> long
%f -> 실수형 (4바이트) -> float
%lf -> 실수형 (8바이트) -> double
%c -> 문자 -> char
%s -> 문자열 -> char
%o -> 8진수 -> int
%x -> 16진수 -> int
%p -> 주소값 -> void
%u -> 부호없는 10진수 (4바이트) -> unsigned int
+참고: https://reallemonjuice.tistory.com/113
- 같은 값이라도 어떤 형식으로 출력하느냐에 따라 다른 출력을 보인다.
아스키 문자표에서 'A'는 65로,'B'는 66으로 저장된다.
연산
비트시프트 연산
왼쪽 비트시프트(<<)가 될 때에는 오른쪽에 0이 주어진 개수만큼 추가되고, 오른쪽 비트시프트(>>)가 될 때에는 왼쪽에 0(0 또는 양의 정수인 경우)이나 1(음의 정수인 경우)이 개수만큼 추가된다.
범위(32비트)를 넘어서 이동되는 비트는 삭제된다.
- 예시
int a=10;
printf("%d", a<<1); //10을 2배 한 값인 20 이 출력된다.
printf("%d", a>>1); //10을 반으로 나눈 값인 5 가 출력된다.
비교/관계 연산자
비교/관계연산자는 >, <, >=, <=, ==(같다), !=(다르다) 6개가 있다.
>=, <= 연산자는 같음(==)을 포함한다.
따라서 “작다/크다” 또는 "같다”는 의미를 가진다.
논리 연산자
삼항 연산자
3개의 요소로 이루어지는 3항(ternary) 연산자는
"조건식 ? (참일 때의 값) : (거짓일 때의 값)” 의 형태로 사용하는 연산자이다.
- 조건식의 계산 결과가 참인 경우에는 ':' 왼쪽의 값 또는 식으로 바뀌고, 거짓인 경우에는 ':' 오른쪽의 값 또는 식으로 바뀐다.
-ex)
- 123 > 456 ? 0 : 1
과 같은 표현식은 123 > 456 의 비교연산 결과가 거짓이므로 1이 된다. - printf("%d", a>b ? a:b); //두 값 중 큰 값이 출력된다.
99번
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int map[11][11] = {};
int now = 0;
int i=2, j=2;
for (int i = 1; i <= 10; i++) {
for (int j = 1; j <= 10; j++) {
scanf("%d", &map[i][j]);
}
}
while (now != 2) {
now = map[i][j];
if (now == 0) {
map[i][j] = 9;
}
else if (now == 1)
break;
else {
map[i][j] = 9;
continue;
}
//다음 어느 굴로 이동가능한지 계산
j++; //오른쪽으로 이동해봄
if (map[i][j] == 0) {
continue; //오른쪽 이동 가능하면 이동
}
else if(map[i][j] == 1){// 오른쪽이 벽이면
i++; j--;
continue; //아래쪽으로 이동
}
}
for (int i = 1; i <= 10; i++) {
for (int j = 1; j <= 10; j++) {
printf("%d ", map[i][j]);
}
printf("\n");
}
return 0;
}
Author And Source
이 문제에 관하여(CodeUp 기초100제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ttomy/CodeUp-기초100제저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)