티스토리 뷰

반응형

① 1부터 20까지의 숫자로만 초기화된 ary 배열을 다음과 같이 선언합니다. 이 배열에서 특정 숫자의 개수를 세어 출력하는 프로그램을 작성합니다.


int ary[] = {2,8,15,1,8,10,19,19,3,5,6,6,2,8,2,12,16,3,8,17,12,5,3,14,13,3,2,17,19,16,8,7,12,19,10,13,8,20,16,15,4,12,3,14,14,5,2,12,14,9,8,5,3,18,18,20,4};


프로그램을 실행하면 다음과 같이 수행될 것입니다.


찾기를 원하는 숫자를 입력하세요(1~20) : 19

숫자 19는 배열에 4개 있습니다.



- 소스


#include <stdio.h>


int main()

{

int ary[] = {2,8,15,1,8,10,19,19,3,5,6,6,2,8,2,12,16,3,8,17,12,5,3,14,13,3,2,17,19,16,8,7,12,19,10,13,8,20,16,15,4,12,3,14,14,5,2,12,14,9,8,5,3,18,18,20,4};

int search, count=0, size, i;


printf("찾기를 원하는 숫자를 입력하세요(1~20) : ");

scanf("%d",  &search);


size = sizeof(ary) / sizeof(ary[0]);


for(i=0; i<size; i++)

{

if(ary[i]==search)

{

count++;

}

}


printf("숫자 %d는 배열에 %d개 있습니다", search, count);


return 0;

}

- 결과






② ①번 문제에서 1부터 20까지 모든 숫자에 대해서 개수를 세어 출력합니다. 각 숫자에 대하여 개수를 누적시킬 변수들을 배열로 선언하여 작성합니다.


int count[20] = 0;


프로그램을 실행하면 다음과 같이 수행될 것입니다.


1 - 1개

2 - 5개

3 - 6개

   .

   .

   .

19 - 4개

20 = 2개



- 소스


#include <stdio.h>


int main()

{

int ary[] = {2,8,15,1,8,10,19,19,3,5,6,6,2,8,2,12,16,3,8,17,12,5,3,14,13,3,2,17,19,16,8,7,12,19,10,13,8,20,16,15,4,12,3,14,14,5,2,12,14,9,8,5,3,18,18,20,4};

int search, count[20]={0}, size, i,j;


size = sizeof(ary) / sizeof(ary[0]);


for(i=0; i<size; i++)

{

for(j=0; j<20; j++)

{

if(ary[i]==j+1)

{

count[j]++;

}

}

}


for(i=0; i<20; i++)

{

printf("%d - %d개\n", i+1, count[i]);

}


return 0;

}


- 결과






③ 배열에 임의의 숫자를 초기화한 후에 각 숫자들의 위치를 반대로 바꾸는 프로그램을 작성합니다. 배열은 하나만 사용하며 배열의 크기가 바뀌더라도 수정할 필요가 없도록 작성합니다.


1 2 3 4 5   ==> 5 4 3 2 1


두 변수의 값을 바꾸기 위해서는 임시변수를 하나 준비하여 다음과 같이 처리합니다.


int a=10, b=20, temp;

① a의 값을 temp에 복사한다.    temp = a;

② b의 값을 a에 복사한다.         a = b;

③ temp의 값을 b에 복사한다.    b = temp;


프로그램을 실행하면 다음과 같이 수행될 것입니다.


처음 배열에 저장된 값 : 1 2 3 4 5

바뀐 배열에 저장된 값 : 5 4 3 2 1



- 소스


#include <stdio.h>


int main()

{

int ary[] = {1,2,3,4,5};

int size, i, temp;


size = sizeof(ary) / sizeof(ary[0]);

printf("처음 배열에 저장된 값 : ");

for(i=0;i<size;i++)

{

printf("%d ", ary[i]);

}


printf("\n");


for(i=0;i<size/2;i++)

{

temp = ary[i];

ary[i] = ary[size-i-1];

ary[size-i-1] = temp;

}


printf("바뀐 배열에 저장된 값 : ");

for(i=0;i<size;i++)

{

printf("%d ", ary[i]);

}


return 0;

}

- 결과





반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함