Em bị lỗi gì mà khi chạy ct nó ko hiện ra kết quả mong muốn

#include<stdio.h>
#include<string.h>
#include<conio.h>
int main()
{
    // khai bao
    char x[20];
    char y[20];
    char *ptr1,*ptr2;
    int i,n;
    ptr1=&x[0];
    ptr2=&y[0];
    // nhap gia tri
    printf("Enter the string: ");
    scanf("%s",x);

    n = strlen(x)-1;
    //dao nguoc cac ki tu
    for(i=0; i<strlen(x); i++) {
        *(ptr1+i)=*(ptr2+n-i);
    }

    printf("The string is reversed:%s ",y);

    return 0;
}

Ban loi o vong for kia??

hình như phần preview có vấn đề hay sao mà post của e bị thiếu nhiều quá

Anh ơi, khi post bài, anh làm ơn nêu rõ vấn đề của mình, mình đang làm gì, gặp lỗi ra sao, output mong muốn và output hiện tại, … để mọi người dễ dàng giúp hơn

Mong anh rút kinh nghiệm.

Và anh cũng làm quen với Markdown nha, code sẽ dễ đọc hơn.

1 Like

Và có thể anh sai ở đây :

for(i = 0; i < strlen(x); i++) {
        *(ptr1 + i) = *(ptr2 + n - i);
    }
for(i=0; i<strlen(x); i++) {
        *(ptr2 + i) = *(ptr1 + n - i);
    }

Lý do là vì anh chỉ mới nhập vào ptr1 (x), chứ chưa nhập vào ptr2. Mà lại gán từng phần tử của ptr2 cho ptr => sẽ ra kết quả không như mong muốn vì lúc này ptr2 toàn là giá trị rác

Còn code ở dưới là gán từng phần tử của ptr1 vào ptr2, theo thứ tự nghịch đảo, lúc này ptr2 sẽ giữ nghịch đảo của ptr1

Input:
long

Output:
gnol
2 Likes

Cám ơn bạn mình sửa được rồi :slight_smile:

@Phong_Trieu sửa như thế nào thế? Nếu câu trả lời của @nhatlonggunz đúng thì accept câu trả lời của @nhatlonggunz, test tính năng chấp nhận câu trả lời.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?