< 20강. 배열 >
#include <stdio.h>
int main() {
// 배열 선언
int a[5]; // 배열의 "이름[크기]" 를 선언
a[0] = 2; // 5개 짜리 선언한 상태에서 index에 값을 대입 , python처럼 0부터 시작
a[1] = 3;
a[2] = 7;
a[3] = 6;
a[4] = 8;
for (int i = 0; i <=4 ; i++){
printf("%d\n",a[i]);
}
}
이렇게 선언하는 것은 너무 비효율적!!
#include <stdio.h>
int main(){
// arr
int arr[] = {3,1,4,1,5};
for (int i = 0; i<= 4 ; i++){
printf("%d ",arr[i]);
}
}
중괄호로 선언하는 것이 가능!
굳이 arr[]안에 숫자를 안적어도 됨 / 어차피 알아서 몇 개인지 알기 때문에 가능
int main(){
// arr
int arr[] = {3,1,4,1,5,9,2,6,5,3}; // 4바이트짜리가 10개 -> sizeof 하면 40을 반환함
for (int i = 0; i<= sizeof(arr) / sizeof(int) -1 ; i++){
printf("%d ",arr[i]);
}
}
int가 4바이트이기 때문에 sizeof(arr)를 하면 4 X 10개여서 40바이트가 출력이 된다. 이를 sizeof(int)로(=4) 나누면 배열의 크기를
편하게 계산할 수 있다. 파이썬의 len() 느낌인데 좀 더 귀찮은 느낌이다..!
< 21강. 배열을 활용해 보자! >
1. 입력받은 숫자들을 거꾸로 출력
#include <stdio.h>
int main() {
int n;
int arr[1000];
printf("입력할 숫자의 개수 입력 : ");
scanf("%d",&n);
for (int i = 0; i <n ; i++){
scanf("%d",&arr[i]);
}
for (int i = n - 1; i>=0;i--){
printf("%d\n",arr[i]);
}
}
2. 최대, 최소
최댓값 구하기
#include <stdio.h>
int main() {
int n;
int arr[100];
scanf("%d",&n);
for (int i = 0; i < n ; i++){
scanf("%d",&arr[i]);
}
int max = arr[0];
for (int i= 1; i <n;i++){
if (max < arr[i]) max = arr[i]; // 갱신해주는 과정임
}
printf("%d",max);
}
최솟값 구하기
int main() {
int n;
int arr[100];
scanf("%d",&n);
for (int i = 0; i < n ; i++){
scanf("%d",&arr[i]);
}
int min = arr[0];
for (int i= 1; i <n;i++){
if (min > arr[i]) min = arr[i]; // 갱신해주는 과정임
}
printf("%d",min);
}
부호 바꾸기만 해주면 됨
3. 짝수의 개수
#include <stdio.h>
int main() {
int n;
int arr[100];
scanf("%d",&n);
for (int i = 0; i < n ; i++){
scanf("%d",&arr[i]);
}
int cnt = 0;
for (int i = 0 ; i < n; i++){
if (arr[i] % 2 == 0){
cnt++;
}
}
printf("%d",cnt);
}
< 22강. 2차원 배열 >
#include <stdio.h>
int main(){
// 3행 4열 배열을 만들겠다.
int arr[3][4] {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
}; // 그냥 12개를 일렬로 써도 되지만 이렇게 쓰는게 눈에 보기 좋음
}
#include <stdio.h>
int main(){
// 3행 4열 배열을 만들겠다.
int arr[3][4] {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
}; // 그냥 12개를 일렬로 써도 되지만 이렇게 쓰는게 눈에 보기 좋음
for (int i = 0; i < 3;i++){
for (int j = 0 ; i < 4;j++){
printf("%d",arr[i][j]);
}
printf("\n");
}
}
[행][열]로 선언할 수 있음~
"파스칼의 삼각형" 만들기!
j == 0 || j == i -> i행j열 값 1이됨
i행 j열 = [i-1, j-1] + [i-1, j]
#include <stdio.h>
int main(){
int arr[10][10];
for (int i = 0; i < 10 ; i++) {
for (int j = 0 ; j <= i ; j++) {
if (j == 0 || j == i ) {
arr[i][j] = 1;
}
else {
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
printf("%d ", arr[i][j]);
}
printf("\n");
}
}