길이가 100인 문자열 5개를 저장하는 test_str배열을 선언하고, 배열 안에 들어잇는 5개의 문자열이 앞과 뒤를 바꾸어도 같은지 조사하는 프로그램을 작성하시오.

예를들어, HannaH는 앞에서부터 읽거나 뒤에서부터 읽어도 같은 단어가 나오기 떄문에 회문이다.

실행화면과 같이 문자열을 저장하고, 프로그램을 작성하시오.

image

Source

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

int main(void) {
	char test_str[5][100] = {
		"HannaH","ReliefpfeileR","Root","RotoR","RentneR"
	};

	char reverse[5][100];
	int i = 0;
	int j = 0;
	int k = 0;

	bool flag = false;

	for (int a = 0; a < 5; a++) {
		i = strlen(test_str[a]);
		j = 0;

		while (i != 0) {
			reverse[a][j] = test_str[a][i - 1];
			i--;
			j++;
		}

		if (strlen(test_str[a]) % 2 == 0) {
			for (k = 0; k < strlen(test_str[a]) / 2; k++) {
				if (test_str[a][k] != reverse[a][k]) {
					flag = 1;
					break;
				}
			}
			if (flag == 1)
				printf("%s는 회문이 아닙니다.\n", test_str[a]);
			else
				printf("%s는 회문입니다.\n", test_str[a]);
		}

		else {
			for (k = 0; k < strlen(test_str[a]) / 2; k++) {
				if (test_str[a][k] != reverse[a][k]) {
					flag = 1;
					break;
				}
			}
			if (flag == 1)
				printf("%s는 회문이 아닙니다.\n", test_str[a]);
			else
				printf("%s는 회문입니다.\n", test_str[a]);
		}
		flag = 0;
	}

}

태그:

카테고리:

업데이트: