티스토리 뷰
① 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;
}
- 결과
'IT > 뇌를 자극하는 C 프로그래밍' 카테고리의 다른 글
뇌를 자극하는 C프로그래밍 Exercise 9-4 문자열의 복사와 출력 (0) | 2016.01.06 |
---|---|
뇌를 자극하는 C프로그래밍 Exercise 9-3 문자열의 출력 (0) | 2016.01.06 |
뇌를 자극하는 C프로그래밍 Exercise 9-1 가장 큰 배열요소 값 찾기 (0) | 2015.12.16 |
뇌를 자극하는 C프로그래밍 Exercise 8-5 함수를 사용한 사칙연산 프로그램 (0) | 2015.12.16 |
뇌를 자극하는 C프로그래밍 Exercise 8-4 다양한 형태의 함수 만들기 (0) | 2015.12.15 |
- Total
- Today
- Yesterday
- exercise
- 리눅스
- MySQL
- 데이터베이스
- 영어
- 애플
- 왕초보 영단어1
- 매트랩
- 스위프트
- Xcode
- database
- 포인터
- terascan
- 형용사
- 배열
- 반복문
- Matlab
- 뇌를 자극하는 C 프로그래밍
- IOS
- 단어
- 뇌를 자극하는 C프로그래밍
- 시원스쿨
- Swift
- C
- 테라스캔
- 연습문제
- 함수
- 프로그램
- 프로그래밍
- Apple
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |