언어/C
입력값이 배열 요소인지 판별하는 프로그래밍
새싹개발자
2020. 7. 8. 17:03
정수인 20개의 요소값이 저장되어 있는 배열(data)이 주어져 있다. 요소값은 중복되지 않는다.
사용자로부터 하나의 정수(n)를 입력받아 입력받은 정수가 배열에 있으면 몇번째에 있는 지 알려주고,
배열에 없으면 "n은 배열에 없습니다"를 출력하는 프로그램을 작성하라.
단, 0번 index를 첫번째 요소라 한다. 즉, 주어진 배열에서 1이 1번째 요소이고 35가 20번째 요소이다.
조건1. 하나의 정수를 입력받는다.
조건2. 배열에 있다면 몇 번째에 있는 지 출력
조건3. 배열에 없다면 "n은 배열에 없습니다"를 출력
#include <stdio.h>
#define SiZE 20
int main()
{
int data[SiZE]=
{1,3,6,7,8,9,12,14,17,19,20,23,25,26,27,30,31,33,34,35};
int n; // 입력받을 변수
int cnt=0; // 배열 요소인지 아닌지 판단
scanf("%d", &n);
for(int i=0; i<SiZE; i++){
if(n==data[i]){ // n이 배열 요소라면
cnt++; // cnt++ 해주어라
printf("%d는 배열의 %d번째 요소이다.", n, i+1); //★
}
}
if(cnt==0){ // cnt가 0이라면 (n이 배열 요소가 아니라면)
printf("%d은 배열에 없습니다", n);
}
return 0;
}
★ printf("%d는 배열의 %d번째 요소이다.", n, i+1);
i+1 인 이유? 배열은 data[0]이 첫번째 요소, data[1]이 두 번째 요소,,, 따라서 data[i]는 i+1번쨰 요소이다.
<실행결과>