1차원 배열 자료구조 -(Quize 2)

채재헌·2022년 7월 12일
0

🎈1.문제 설명

* 회문은 "level", BoB" 과 같이 앞으로 읽으나 뒤로 읽으나 똑같은 단어이다.

* 입력된 영어 단어의 회문 여부를 검사하는 프로그램을 작성하자.

* 반복 수행하고 단어 입력시 "end"를 입력하면 종료하자.

🎆2.필수 사용 함수

1.입력 함수 : 문자열 입력 함수

2.회문 검사함수 : 회문이면 1을, 회문이 아니면 0을 리턴하는 함수

🎇3. 실행의 예

🧨4. 코드+ 주석

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

void inputString(char *cp);		/*회문 입력 함수 */
int checkPalindrome(char *cp);	/*회문 검사 함수*/

int main()
{
	char str[80];		// 문자열 저장 배열
	int res;			// 회문 검사 결과 저장

	inputString(str);
	while (strcmp(str, "end") != 0) {
		res = checkPalindrome(str);
		if (res == 1)
			printf("\"%s\" : 회문입니다.\n", str);
		else
			printf("\"%s\" : 회문이 아닙니다.\n", str);
		inputString(str);
	}

	getchar();//최종결과까지 확인하기 위해서 getchar()함수를 추가하였음. 
	getchar();//최종결과까지 확인하기 위해서 getchar()함수를 추가하였음. 
	return 0;
}
//---------------------------------------------------
void inputString(char *cp)
{
	printf("# 회문 검사할 문자열을 입력하시오 : ");	
	scanf("%s", cp);/*회문 입력*/
	return;
}
//---------------------------------------------------
int checkPalindrome(char *cp)
{
	int length;
	int check = 1;
	
	length = strlen(cp);
	for (int i = 0; i < length / 2; i++) {
		if (cp[i] != cp[length -i - 1]) {
			check = 0;
			break;
		}
	}

	return check;
	// =>배열에 저장 된 문자의 길이를 반으로 나눈 뒤 배열을 계속 비교하며, 회문이면 1을 리턴하고 
	// 아니면 0을 리턴해준다.
}

=>이번 코드는 주석에 설명이 포함되어 따로 문제 설명을 하지 않겠습니다.

🎉5.출력화면

✨6.느낌점

이번 1차원 배열의 마지막 퀴즈 문제를 풀어봄으로써 배열의 선형적인 구조를 더 잘 알게 되었고, 회문을 만드는 프로그램을 통해 문자열을 이용해 각각의 단어들을 비교해보고 대조하는 방법을 새로 배웠으며, 앞으로 다른 문제를 통해 배열에 대해 이해하고 잘 이용하도록 노력해야겠다는 마음이 들었다.

0개의 댓글