220825 C언어#7, 앱인벤터#8

김혜진·2022년 8월 25일
0

C언어

목록 보기
7/13

C언어 #7

Q&A

연산의 우선순위

switch문의 case

  • 문자형이 와도 동작한다.
    문자형: 'A' 작은 따옴표
    문자열: "HELLO" 큰 따옴표

  • 실수형은 안된다.

printf문

printf문도 리턴 값을 가지고 있다.

int n = printf("Hellow World\n");
printf("%d",n);

출력결과 13


배열

  • 배열이란 같은 배열속성을 가진 것들을 나열해 놓은 것을 말한다.
    ex) 아파트, 계란 한 판

  • 배열의 속성
    배열의 요소가 순서대로 여러 개 모인 것이다.
    배열의 요소는 같은 속성을 지니고 있어야 한다.

왜 배열을 사용해야 하나

  • 정수형 변수 1개 선언 : int a
  • 정수형 변수 2개 선언: int a; int b;
  • 정수형 변수 10개 선언 :10개 정도는... 선언 가능 하다.
  • 정수형 변수 100개 선언 : 변수 100개는 직접 선언하여 해결할 문제는 아니다.
  • 배열을 사용하면 변수가 100개이든 1000개이든 간단하게 선언할 수 있다.

    int a[100];

배열의 선언 구조

  • 배열의 타입 : 배열 요소들의 타입을 나타낸다.
  • 배열 이름 : 각 배열 요소에 접근하기 위한 배열 이름을 나타낸다.
  • 배열 길이 : 변수의 개수를 나타낸다.
  • int array[5]의 경우 배열 타입은 int, 이름은 array, 길이는 5

    각 4byte이므로 총 20byte가 된다.

배열의 속성

  • 배열의 길이는 무조건 상수 선언

    컴파일러가 변수를 선언했을 때 메모리를 얼마만큼 할당해야하는지 알아야 진행이 된다.
    size의 값을 입력받는 부분은 실행시점이고, 실행시점은 컴파일 시점보다 늦기 때문에 입력받는 수를 알 수 없기 때문에 옳지 않은 선언이다.
    scanf를 빼면 논리적인 식이긴 하지만 이런 상황을 방지하기 위해 변수 선언을 금지시켰다.
  • 배열의 첫 번째 요소는 무조건 0부터
    배열의 첫 번째 인덱스는 무조건 0부터 시작한다.

  • 배열의 각 요소에 값을 대입할 수 있다.

#include<stdio.h>

int main(void)
{
	int array[3];

	array[0] = 10;
	array[1] = 20;
	array[2] = 30;

	printf("%d\n", array[0]);
	printf("%d\n", array[1]);
	printf("%d\n", array[2]);


	return 0;
}

출력결과
10
20
30

scanf를 사용해 값을 입력받는 것도 가능하다.

#include<stdio.h>

int main(void)
{
	int arrGrade[3];
	int total = 0;
	double avg = 0.0;

	scanf_s("%d", &arrGrade[0]);
	scanf_s("%d", &arrGrade[1]);
	scanf_s("%d", &arrGrade[2]);

	total = arrGrade[0] + arrGrade[1] + arrGrade[2];
	avg = (double)total / 3;

	printf("총점 : %d\n", total);
	printf("평균 : %f\n", avg);

	return 0;
}

출력결과
80 90 100
총점 : 270
평균 : 90.000000

반복문 사용하기

	for (int i = 0; i < 3; i++)
	{
		scanf_s("%d", &arrGrade[i]);
		total += arrGrade[i];
	}

sizeof() 메모리 크기를 바이트 단위로 반환하는 연산자
sizeof(int) = 4
sizeof(double) = 8
int arr[3];
sizeof(arr) = 12

배열의 길이가 변하더라도 수정할 필요 없는 식

	for (int i = 0; i < sizeof(arrGrade) / sizeof(arrGrade[0]); i++)
	{
		scanf_s("%d", &arrGrade[i]);
		total += arrGrade[i];
	}

배열의 길이, 크기가 바뀔 때마다 알아서 적용이 된다.


앱인벤터 #8

가위바위보 게임 만들기

  • 블록

    중복 블록에 함수 적용하기

random() 랜덤한 정수 값을 리턴
int a = random()

퀴즈앱 만들기

  • 디자인

  • 블록

앱인벤터 초기값은 1

메모장 만들기

  • 디자인

  • 블록

파일은 다음에 또 사용하기 위한 목적으로 저장함
파일은 저장될 때 텍스트로 저장이 됨

profile
알고 쓰자!

0개의 댓글