본문 바로가기

프로그래밍/C++

기초중기초(배열 array)

 변수에는 간단한 변수(방 하나짜리 변수. 예:int, char), 배열(같은 방 여러 개를 갖는 변수), struct(크기가 다른 방 여러 개를 갖는 변수), pointer(주소가 들어갈 수 있는 방 하나짜리 변수) 등 4가지 종류가 있다. 이 각각의 자료구조에 대해
- 선언하는 법
- 선언의 효과
- 각 방의 이름
- 각 방에 데이타 넣기
- 각 방의 데이타 출력
등에 대해 알고 있어야 한다.

기본모양
- 선언하는 법 int z[10];
- 선언의 효과 정수를 담을 수 있는 방 10개가 생긴다.
- 각 방의 이름 각 방은 z[0], z[1], ...., z[9]. 전체는 z
- 각 방에 데이타 넣기 z[0]=3; z[1]= 5; ..........
- 각 방의 데이타 출력 cout << z[0]; cout << z[1]; .........

int z[5]; // 방 10개 짜리 변수의 실제 선언 모양. 선언하는 법.
데이터 타입: integer (즉 각 방의 크기는 4 바이트)
변수 이름 : z
방수 : 5 // 선언의 효과. 6개의 방이 생긴다.
각 방의 이름: z[0], z[1], z[2], ...., z[5] // 각 방의 이름.

 z[0] z[1]  z[2]  z[3]  z[4]  z[5] 


*NULL 문자(아스키 코드 =0)로 끝나는 문자열을 스트링이라고 부른다.

[스트링]
'k' 'o'  'r'  'e'  'a' 

ex)
----------------------------------------

#include <iostream>
using namespace std;


int main()
{
 int i;
 char y[10]; // 방 10개짜리 문자 배열 선언
 y[0]='k';
 y[1]='o';
 y[2]='r';
 y[3]='e';
 y[4]='a';
 y[5]=0; // y를 스트링으로 만들기 위해 NULL 문자 삽입. 이제 y에 "korea"가 들어있다고 말한다.

cout<<y[0]<<endl; //0 번째 방의 값 출력

for(i=0;i<6;i++)
cout<<y[i]; //5번째 방긔 값까지 모두 출력

}


2차원 배열.

int x[5][5]; // 2차원 방 배열

 0,0 0,1  0,2  0,3  0,4  0,5 
 1,0   ...        
 ...          
           ...
           4,5
       .  5,4  5,5

숙제.
1. 2차 배열에서 row 별/column 별 sum구하기
   -rand 사용해서 임의값을 배열에 대입


숙제답안.
1.
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;

int main()
{
 int x[6][6]; //배열[5][5]만 필요하지만 널값을 넣어야하므로 [6][6]
 int a,b,rowsum[6],colsum[6];//위와 동일한 이유

 for(a=0;a<6;a++)
  for(b=0;b<6;b++)
   x[a][b]=rand()%10+1; // 10안에 임의의수를 배열에 대입
 
 for(a=0;a<6;a++)
 {for(b=0;b<6;b++)
 printf("%d\t",x[a][b]);
 cout<<endl;
 }
 
 cout<<"-------------------------------------------"<<endl;
 
 for(a=0;a<6;a++)
  rowsum[a]=0;//sum의 초기값을 정해줌
 
 for(a=0;a<6;a++)//row별 sum
 {for(b=0;b<6;b++)
  rowsum[a]=rowsum[a]+x[a][b];
 }
 for(a=0;a<6;a++)
  cout<<"rowsum["<<a<<"](가로)의 합:"<<rowsum[a]<<endl;
 
 cout<<"-------------------------------------------"<<endl;
 for(a=0;a<6;a++)
  colsum[a]=0;//sum의 초기값을 정해줌
 
 for(a=0;a<6;a++)//col별 sum
 {for(b=0;b<6;b++)
  colsum[a]=colsum[a]+x[b][a];
 }
 for(a=0;a<6;a++)
  cout<<"colsum["<<a<<"](세로)의 합:"<<colsum[a]<<endl;

 

 


출처: 인하대 학생
수정:http://first-reverse.tistory.com/

'프로그래밍 > C++' 카테고리의 다른 글

기초중기초(함수)  (0) 2011.01.04
기초중기초(구조체 struct)  (0) 2011.01.03
기초중기초(반복문 for)  (0) 2011.01.03
기초중기초(반복문 while)  (0) 2010.12.27
기초중기초(조건문 if)  (0) 2010.11.20