본문 바로가기

Language/C

(c언어) 회문 구하기

728x90
반응형

                       

                             회문 구하기

#include "stdafx.h"
#include "string.h"
#define max 100
char str[max];

void head();
void palindrome(int len, int i, int j, int k, int ck);


int main()
{
    int i=0, j=0, k=0, len = 0, ck = 0;
    head();
    while (str[0]!='e'||str[1]!='n'||str[2]!='d')
    {
        palindrome(len, i, j, k, ck);
    }

}
void head()
{
    printf("\t=======================================\n");
    printf("\t\tPalindrome 판별 문제\n\n");
    printf("\t프로그램을 종료할려면 'end'를 입력하세요\n\n");
    printf("\t    'end'를 소문자로 입력해주세요..\n");
    printf("\t=======================================\n");
}

void palindrome(int len,int i,int j,int k,int ck)
{
    printf("\t문자을 입력하세요: ");
    gets_s(str);
    if (str[0] == 'e'&&str[1] == 'n'&&str[2] == 'd') //문자열 'end'을 입력시 프로그램 종료
    {
        printf("\n\t종료를 선택하셨습니다. 프로그램을 종료 합니다.\n\n");
    }
    else 
    {
        for (i = 0; i < 100; i++) //문자열 길이를 구함
        {
            if (str[i] != '\0')
            {
                len++;
            }
            else
            {
                break;
            }
        }
        for (j = 0, k = len - 1; j < len; j++, k--) //문자열을 하나씩 비교
        {
            if (str[j] != str[k])
            {
                ck++;
                break;
            }
        }
        if (ck > 0)
        {
            printf("\n\t%s 은(는)회문이 아닙니다.\n\n", str);
        }
        else if (ck == 0)
        {
            printf("\n\t%s 은(는)회문 입니다.\n\n", str);
        }
        len = 0;//문자열 길이 초기화
        ck = 0;
    }
    
}

 

728x90
반응형