2019. 3. 31. 20:43ㆍLayer7
#ColorScripter 오류로 인해 run_prettify.js와 C#으로 만든 ScriptConverter를 이용하였습니다.
1-1. 배열을 쓰는 이유
배열X
#include <stdio.h>
int main()
{
int number001;
int number002;
int number003;
int number004;
int number005;
int number006;
int number007;
int number008;
int number009;
int number010;
int number011;
int number012;
int number013;
int number014;
int number015;
int number016;
int number017;
int number018;
int number019;
int number020;
int number021;
int number022;
int number023;
int number024;
int number025;
int number026;
int number027;
int number028;
int number029;
int number030;
int number031;
int number032;
int number033;
int number034;
int number035;
int number036;
int number037;
int number038;
int number039;
int number040;
int number041;
int number042;
int number043;
int number044;
int number045;
int number046;
int number047;
int number048;
int number049;
int number050;
int number051;
int number052;
int number053;
int number054;
int number055;
int number056;
int number057;
int number058;
int number059;
int number060;
int number061;
int number062;
int number063;
int number064;
int number065;
int number066;
int number067;
int number068;
int number069;
int number070;
int number071;
int number072;
int number073;
int number074;
int number075;
int number076;
int number077;
int number078;
int number079;
int number080;
int number081;
int number082;
int number083;
int number084;
int number085;
int number086;
int number087;
int number088;
int number089;
int number090;
int number091;
int number092;
int number093;
int number094;
int number095;
int number096;
int number097;
int number098;
int number099;
int number100;
}
배열O
#include <stdio.h>
int main()
{
int number[100];
}
배열을 쓰면 이와 같이 소스도 간단해지고 여러개의 숫자나 문자 등을 작업할 때 매우 편리하다.
1-2. 배열의 선언 방법
int number[5];
기본적으로 이렇게 선언하며, 그 뜻은 "5개의 저장공간을 가진 int형 1차원 배열 'number'을 선언한다" 이다.
1-3. 배열의 초기화
배열은 선언과 동시에 초기화 할 수 있고, 선언한 후에 초기화 할 수 있다.
int number[5] = { 0, };
//선언과 동시에 초기화
int number[5], count;
for(count = 0;count < 5;count++)
{
number[count] = 0;
}
//선언 후 직접 하나씩 초기화
1-4. 배열 사용법
배열은 주로 다량의 데어터를 입출력 받거나 처리할때 사용된다.
#include <stdio.h>
int main()
{
int count, number[100];
for(count = 0;count < 100;count++)
{
scanf("%d", &number[count]); //100개의 숫자를 입력받는다
}
for(count = 0;count < 100;count++)
{
printf("%d", number[count]); //100개의 숫자를 출력한다
}
}
1-5. 문자열이란?
C언어에서의 문자열은 캐릭터형의 모음(배열)이다.
1-6. 문자열 상수
char *string = "abc";
포인터를 이용하여 문자열 상수인 "abc"를 가리키고 있다.
string[0] = 'A';
등으로 수정이 불가하다.
1-7. 문자열 변수
char string[] = "abc";
char string[4] = "abc";
char 배열을 이용하여 한 단어씩 넣는 방식이다.
char string[4];
string[0] = 'a';
string[1] = 'b';
string[2] = 'c';
string[3] = '\0';
이것과 실행 결과가 같다.
1-8. ASCII 코드란?
10진수 |
부호 |
10진수 |
부호 |
10진수 |
부호 |
10진수 |
부호 |
032 |
056 |
8 |
080 |
P |
104 |
h |
|
033 |
! |
057 |
9 |
081 |
Q |
105 |
i |
034 |
" |
058 |
: |
082 |
R |
106 |
j |
035 |
# |
059 |
; |
083 |
S |
107 |
k |
036 |
$ |
060 |
< |
084 |
T |
108 |
l |
037 |
% |
061 |
= |
085 |
U |
109 |
m |
038 |
& |
062 |
> |
086 |
V |
110 |
n |
039 |
' |
063 |
? |
087 |
W |
111 |
o |
040 |
( |
064 |
@ |
088 |
X |
112 |
p |
041 |
) |
065 |
A |
089 |
Y |
113 |
q |
042 |
* |
066 |
B |
090 |
Z |
114 |
r |
043 |
+ |
067 |
C |
091 |
[ |
115 |
s |
044 |
, |
068 |
D |
092 |
\ |
116 |
t |
045 |
- |
069 |
E |
093 |
] |
117 |
u |
046 |
. |
070 |
F |
094 |
^ |
118 |
v |
047 |
/ |
071 |
G |
095 |
_ |
119 |
w |
048 |
0 |
072 |
H |
096 |
` |
120 |
x |
049 |
1 |
073 |
I |
097 |
a |
121 |
y |
050 |
2 |
074 |
J |
098 |
b |
122 |
z |
051 |
3 |
075 |
K |
099 |
c |
123 |
{ |
052 |
4 |
076 |
L |
100 |
d |
124 |
| |
053 |
5 |
077 |
M |
101 |
e |
125 |
} |
054 |
6 |
078 |
N |
102 |
f |
126 |
~ |
055 |
7 |
079 |
O |
103 |
g |
아스키 코드 중 제어 문자와 확장 아스키 코드를 제외한 부호(영문 자판에 사용되는 부호)를 정리한 것이다.
아스키코드는 미국 ANSI에서 표준화한 정보환용 7비트 부호체계이다. 총 128개의 부호가 사용된다.
1바이트는 8비트 이지만 아스키코드는 7비트다. 나머지 1비트는 어디 사용될까?
통신 에러 검출에 사용된다. 비트 중 1의 개수가 홀수면 1, 1의 개수가 짝수이면 0으로 패리티 비트를 붙인다.
이로서 변질된 신호를 검출해낼 확률을 높인 것이다.
하지만 이런 체크에 검출되지 않는 신호 에러도 생길 수 있고, 현재는 더 이상 쓰이지 않는다.
현재는 그냥 맨 앞 비트에 0을 붙이고 이어서 7비트가 이어지는 식의 인코딩이 일반적이다.
대문자와 소문자 숫자 차이는 32이다.
그러므로 'a' - 32 = 'A'이다.
1-9. 2차원 배열
int number[5][5];
기본적으로 이렇게 선언하며, 그 뜻은 "5 * 5개의 저장공간을 가진 int형 2차원 배열 'number'을 선언한다" 이다.
1차원 한 층의 서랍, 2차원 배열은 여러 층의 서랍이라고 이해하면 편하다.
예) 총 학년수가 3, 총 반수가 12인 학교의 반당 학생 수를 출력하는 프로그램이다.
#include <stdio.h>
int main()
{
int number[3][12] = /*생략*/;
int n1, n2;
for(n1 = 0;n1 < 3;n1++)
{
for(n2 = 0;n2 < 12;n2++)
{
printf("%d", number[n1][n2]);
}
}
}
1-10. 다차원 배열
int number[5][5][5];
int number[5][5][5][5];
기본적으로 이렇게 선언하며, 그 뜻은 "5 * 5 * 5개, 5 * 5 * 5 * 5개의 저장공간을 가진 int형 3, 4차원 배열 'number'을 선언한다" 이다.
3차원 배열은 X, Y, Z로 이루어진 서랍장을 생각하면 되고, 4차원 배열은 X, Y, Z로 이루어진 서랍장이 A개 있다고 생각하면 된다.
'Layer7' 카테고리의 다른 글
함수 보고서 (0) | 2019.04.06 |
---|---|
Codeup 기초100문제 (0) | 2019.04.02 |
2019-03-29 과제 (0) | 2019.03.30 |
LAYER7 : 정수 입력받고 최댓값 출력하기, 최솟값 출력하기 (0) | 2019.03.22 |
LAYER7 : LAYER7 간지나게 출력하기 (0) | 2019.03.21 |