[C]배열

suyeon·2022년 8월 25일
1

C

목록 보기
6/8
post-thumbnail

배열이란?

같은 형태의 많은 데이터를 반복문으로 처리하기 위하여 메모리에 연속적으로 저자해놓고 쪼개서 사용하는 것

  • 하나씩 따로 변수를 선언하면 반복문 사용이 불가

배열선언

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void)
{
	int ary[5];

	ary[0] = 10;					//ary[0]에 10이 저장된다.
	ary[1] = 20;					//ary[0]에 20이 저장된다.
	ary[2] = ary[0] + ary[1];		//10+20,ary[2]에 30이 저장된다.
	printf("나이를 입력하세요 : ");	
	scanf("%d", &ary[3]);			//art[3]에 입력한 값이 저장된다.

	printf("%d\n", ary[2]);
	printf("%d\n", ary[3]);			//입력받은 값이 출력됨
	printf("%d\n", ary[4]);			//쓰레기값이 출력됨

	return 0;
}

배열초기화

  • 기본적인 초기화방법
int ary[5]={1,2,3,4,5};		//ary[0], ary[1], ary[2],ary[3], ary[4]에 각각 '1','2','3','4','5' 이 숫자들을 넣는다.
  • 초기값이 배열 요소의 개수보다 적은 경우
int ary[5]={1,2,3};			//차례대로 초기화하고 남은 배열 요소는 0으로 채운다.
  • 배열요소가 많아도 모든 요소를 쉽게 0으로 초기화할 수 있음
int ary[1000]={0};			//ary[1000]까지 0으로 초기화함
  • 배열요소 개수가 생략된 형태
int ary3[]={1,2,3};			//알아서 배열방이 3개 생겨남	
  • double형 배열
double ary[4]={1.0, 2.1, 3.2, 4.3, 5.4};
  • char형 배열
char ary[5]={'a','p','l','l','e'};

반복문을 이용한 프로그램

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void)
{
	int score[5];						//배열선언
	int i;
	int total = 0;
	double avg;

	for (i = 0; i < 5; i++)				//성적을 입력하세요를 5번 반복
	{
		printf("%d번 성적을 입력하세요 : ", (i+1));
		scanf("%d", &score[i]);
	}

	for (i = 0; i < 5; i++)				//성적 누적 계산(점수 총합)
	{
		total += score[i];				
	}
	avg = total / 5.0;

	for (i = 0; i < 5; i++)				//타이핑한 점수 출력
	{
		printf("%5d", score[i]);	
	}
	printf("\n");

	printf("평균 : %.1lf\n", avg);		//평균 출력

	return 0;
}


sizeof연산자 사용한 프로그램

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main(void)
{
	int score[5];
	int i;
	int total = 0;
	double avg;
	int count;
	count = sizeof(score) / sizeof(score[0]);	//sizeof(score)는 배열전체크기(20byte)를 의미하고, sizeof(score[0])는 배열요소 하나의 크기(4byte)를 의미한다.
	for (i = 0; i < count; i++)
	{
		scanf("%d", &score[i]);
	}

	for (i = 0; i < count; i++)
	{
		total += score[i];
	}
	avg = total / (double)count;

	for (i = 0; i < count; i++)
	{
		printf("%5d", score[i]);
	}

	printf("\n");
	printf("평균 : %.1lf\n", avg);

	return 0;
}

  • sizeof연산자를 사용하는 이유 : 배열 요소의 개수가 바뀌면 배열을 처리하는 반복문을 모두 수정해야한다. 하지만 sizeof 연산자를 사용하면 요소 개수만 바꾸면 된다.
    *요소 개수: int ary[5];[5]부분
profile
📖개발블로그📖

0개의 댓글