30/09/2018, 16:18

Kiểm tra chuổi đối xứng

#include<stdio.h>
#include<conio.h>
#include<string.h>
void nhapchuoi(char Chuoibatki[30])
{
	fflush(stdin);
	printf("
Nhap chuoi can kiem tra: ");
	gets(Chuoibatki);
}
void xuatchuoi(char Chuoibatki[30])
{
	printf("
%s",Chuoibatki);
}
int CheckChuoidoixung(int a[],char Chuoibatki[30])
{
	int Dodaichuoi=strlen(Chuoibatki);
     for(int i=0;i<Dodaichuoi;i++)
	 {
		 if(a[i]!=a[Dodaichuoi-i-1]) return 0;
	 }
	 return 1;
}
void main()
{
	int a[50];
	char Chuoibatki[30];
	nhapchuoi(Chuoibatki);
	xuatchuoi(Chuoibatki);
	int k=CheckChuoidoixung(a,Chuoibatki);
	if(k==0) printf("no");
	if(k==1) printf("ok");
	getch();
}

Sữa lại sao thế mọi người. Kết quả sai rồi

Kelvin Nguyễn viết 18:28 ngày 30/09/2018

Em biết sửa rồi. Cảm ơn mọi người

Nguyễn Minh Dũng viết 18:29 ngày 30/09/2018

Xin lỗi @Kelvin_Nguy_n nhé, lúc sáng có thấy câu hỏi của @Kelvin_Nguy_n. Nhưng câu hỏi thiếu thông tin quá, lại đang bận nên anh không vào trả lời được.

Kết quả sai rồi

Em không nói rõ là kết quả sai rồi có nghĩa là sai như thế nào nên anh không có tinh thần vào xem.

Tuy nhiên vì em đã tự sửa được, liệu em có thể cho mọi người biết giải pháp của em không?

Kelvin Nguyễn viết 18:31 ngày 30/09/2018

Em không biết giải pháp sao nữa. Chạy code bằng tay từ đầu tới cuối. Hóa ra cái chổ

int CheckChuoidoixung(int a[],char Chuoibatki[30])
{
    int Dodaichuoi=strlen(Chuoibatki);
    for(int i=0; i<Dodaichuoi; i++)
    {
        if(a[i]!=a[Dodaichuoi-i-1]) return 0;
    }
    return 1;
}

sữa lại thành

int CheckChuoidoixung(char Chuoibatki[30])
{
    int Dodaichuoi=strlen(Chuoibatki);
    for(int i=0; i<Dodaichuoi; i++)
    {
        if(i!=Dodaichuoi-i-1) return 0;
    }
    return 1;
}

viết 18:29 ngày 30/09/2018

Sao so sánh kí tự trong 2 chuỗi lại dùng chỉ số để so sánh nhỉ
Mình nghĩ việc đầu tiên nên làm là kiểm tra độ dài 2 chuỗi có bằng nhau không. Không bằng nhau chắc chắc không phải là chuỗi đối xứng rồi

Bài liên quan
0