1차원 배열의 활용- (Quize 1)

채재헌·2022년 7월 12일
0
post-thumbnail

🎆1. 문제 설명


int sum[10]배열을 1~20난수로 초기화한 후 배열 내의 데이터에서 사용자가 지정한 정수를 검색하여 배열내에 저장된 위치를 출력한다.(5회반복)


##🎇 2.<출력화면>


🧨3.코드+주석

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void printArray(int *ap, unsigned int cnt); // 배열내용 출력 함수
void initArray(int *ap, unsigned int size); // 1~20까지의 난수로 배열초기화하는 함수
int searchArray(int *ap, unsigned int size, int sData); // 검색함수

int main()
{
	int num[10];		// 데이터 저장 배열
	unsigned int size;  // 배열의 크기(방이 개수) 저장
	int sData;			// 검색할 데이터 저장
	int res = 0;			// 검색 결과 저장
	int i;
	size = sizeof(num) / sizeof(num[0]);	// 배열 크기 계산


	initArray(num, size);
	printArray(num, size);

	for (i = 0; i < 5; i++) {
		printf("# 검색할 정수를 입력하시오 : ");
		scanf("%d", &sData);
		res = searchArray(num, size, sData);
		if (res != -1)
			printf("%d는 %d번 방에 있습니다.\n", sData, res);
		else
			printf("%d는 존재하지 않습니다.\n", sData);
	}
	getchar();
	getchar();
	return 0;
}
//---------------------------------------------------
int searchArray(int *ap, unsigned int size, int sData)
{
	int position = -1;
	for (unsigned int i = 0; i < size; i++) {/* 만약 배열내의 데이터와 인덱스가 같으면 */
		if (ap[i] == sData){
		position = i; 
		break;
	}
}
	return position; //위치 리턴
}
//---------------------------------------------------
void initArray(int *ap, unsigned int size)
{
	for (unsigned int i = 0; i < size; i++) {
		ap[i] = rand() % 20 + 1; // 1~20 사이의 난수로 초기화
	}
}
//---------------------------------------------------
void printArray(int *ap, unsigned int cnt)
{
	printf("배열의 내용 : %5d \n", ap[cnt]); // 배열 내용 출력
}

✨ 4.<출력 결과>

🎉5. 느낌점

이번 시간을 통해 배열의 구조와 데이터 순차 검색 방법을 고안해내서 프로그램을 만들게 되었다. 그리고 새로 배운 난수 지정 함수를 통해 1~20까지의 숫자를 무작위로 나오도록 하였고, 아직 부족한 부분도 많지만 자료구조의 1차원 배열을 더 자세히 알게 되는 계기가 된것 같다.

0개의 댓글