-
1. 배열이란 무엇인가?
둘 이상의 변수를 동시에 선언하는 효과를 지닌다.
많은 양의 데이터를 일괄적으로 처리해야 하는 경우에 유용하다.
지역적 특성을 지닐 수도 있고, 전역적 특성을 지닐 수도 있다.
배열 선언에 있어서 필요한 것 세 가지- 배열 길이 : 배열을 구성하는 변수의 개수 (반드시 상수를 사용)- 배열 요소 자료형 : 배열을 구성하는 변수의 자료형- 배열 이름 : 배열에 접근할 때 사용되는 이름2, 1차원 배열의 접근
배열 요소의 위치를 표현 : 인덱스(index)
인덱스는 0에서부터 시작
*배열 선언과 접근의 예
int main(void)
{
int array[10]; // 배열 선언
array[0]=10; // 첫 번째 요소 접근
array[1]=20; // 두 번째 요소 접근
array[2]=30; // 세 번째 요소 접근
. . . . .
return 0;
}
#include <stdio.h>
int main(void)
{
double total;
double val[5];
val[0]=1.01;
val[1]=2.02;
val[2]=3.03;
val[3]=4.04;
val[4]=5.05;
total=val[0]+val[1]+val[2]+val[3]+val[4];
printf("평균 : %lf \n", total/5);
return 0;
}
3. 선언과 동시에 초기화
int main(void)
{
int arr1[5]={1, 2, 3, 4, 5};
int arr2[ ]={1, 3, 5, 7, 9};
int arr3[5]={1, 2}
}
4. 배열 기반 문자열 변수
- 문자열 상수
문자열이면서 상수의 특징을 지닌다
printf("Hello World! \n");
-문자열 변수문자열이면서 변수의 특징을 지닌다
char str1[5]="Good";
char str2[]="morning";
#include <stdio.h>
int main(void)
{
char str1[5]="Good";
char str2[]="morning";
printf("%s \n", str1);
printf("%s %s \n ", str1, str2);
return 0;
}
ex ) 5 명의 학생의 성적을 입력 받고 총 합계와 평균 구하기
#include <stdio.h>int main(){int grade[5];int i,sum = 0;for(i=0;i<5;i++){printf("%d 번째 학생의 성적 : ",i+1);scanf("%d",&grade[i]);}printf("<< 입력한 학생들의 성적 >>\n");for(i=0;i<5;i++){printf("%d ",grade[i]);sum += grade[i];}printf("\n학생들의 총 합계 : %d\n",sum);printf("학생들의 평균 점수 : %.2f\n",(float)sum/5);return 0;}5. 문자열의 특징
문자열은 널(null)문자를 끝에 지닌다.
널(null) 문자 : '\0'(아스키 코드 값으로 0)
int main(void)
{
char str[6]="Hello";
printf("Hello");
. . . . .
널(null) 문자를 지녀야 하는 이유문자열의 끝을 표현하기 위해서쓰레기 값과 실제 문자열의 경계를 나타내기 위해printf 함수는 널 문자를 통해서 출력의 범위를 결정 짓는다.int main(void)
{
char str[100]=”Hello World!”;
printf(“%s \n”, str);
. . . . .
}문자열과 char형 배열의 차이점char arr1[ ] = "abc";char arr2[ ] = {'a', 'b', 'c'};char arr3[ ] = {'a', 'b', 'c', '\0'};int main(void){int i;char ch;char str[6]="Hello";printf("--변경 전 문자열--\n");printf("%s \n", str);for(i=0; i<6; i++)printf("%c | ", str[i]);/* 문자열 변경 */for(i=0; i<3; i++){ch=str[4-i];str[4-i]=str[i];str[i]=ch;}printf("\n\n--변경 후 문자열--\n");printf("%s \n", str);return 0;}ex ) 문자열 다루기
#include <stdio.h>
int main()
{
char String[10] = "Apple"; //초기값 설정
char String1[10];
int i;
String1[0] = 'O';
String1[1] = 'r';
String1[2] = 'a';
String1[3] = 'n';
String1[4] = 'g';
String1[5] = 'e';
String1[6] = '\0'; //문자열 마지막에 NULL문자 삽입
printf("String = ");
for(i=0;i<sizeof(String);i++){
if(String[i]==NULL){break;} //String[i]가 NULL문자일 시 for문 종료
printf("%c",String[i]);
}
printf("\nString1 = %s \n",String1);
return 0;
}
ex ) 문자열 대 소문자 변환
String = Apple문자열을 소문자로 변환String = apple문자열을 대문자로 변환String = APPLE#include <stdio.h>
int main()
{
char A[2];
char tmp;
A[0] = 'A';
A[1] = 'B';
printf("%c , %c\n",A[0],A[1]);
① tmp = A[0];
② A[0] = A[1];
③ A[1] = tmp;
printf("%c , %c\n",A[0],A[1]);
return 0;
}
배열Sort대량의 데이터를 어떤 순서에 따라 정렬하는 것오름차순(작은수부터)과 내림차순(큰 수부터)으로 나뉜다.sort의 종류- 버블소트 , 삽입 소트, 히프소트 ,퀵 소트 , 힙 소트 등등- 버블 sort인접원소를 비교해서 더 큰 원소를 뒤로 보내는 방식병 밑바닥에서 생긴 버블이 점점 더 커지는 것에 비유매우 간단히 구현이 가능하지만 많은 양일 경우에는 비효율 적이다.'c언어 기초 ' 카테고리의 다른 글
scanf 숫자이외의 입력이 있으면 다시 입력받게 (0) 2017.04.18 포인터 (0) 2017.04.01 재귀 함수 (0) 2017.03.28 함수의 정의와 선언 (0) 2017.03.28 for/무한루프/continue/break문 (0) 2017.03.22