Dưới đây là 1 chương trình thay đổi giá trị trong node em làm trên codelearn, khi chạy trên codelearn và onlinegdb.com thì ra đúng kết quả còn chạy trên dev c++ thì lại không
#include<stdio.h>
#include<stdlib.h>
int i;
typedef struct node{
int X;
struct node* next;
} Node;
Node* makenode(int x){
Node* p=(Node*) malloc(sizeof(Node));
if(p==NULL){
printf("error");
exit(0);
}
p->X=x;
p->next=NULL;
return p;
}
Node* add(Node* h, int x){
Node* p= makenode(x);
h->next=p;
return p;
}
Node* thaydoi(Node* h,int a,int b){
Node* p=h;
while(p!=NULL){
if(p->X==a){
p->X=b;
}
p=p->next;
}
return h;
}
void solution(Node* h){
Node* p=h;
while(p!=NULL){
printf("%d ",p->X);
p=p->next;
}
}
int main(){
int n,x;
scanf("%d%d",&n ,&x);
Node* h=makenode(x);
Node* p=h;
for( i=1;i<n;i++){
scanf("%d",&x);
p=add(p,x);
}
int a,b;
scanf("%d %d",&a, &b);
h=thaydoi(h,a,b);
solution(h);
return 0;
}
đây là kết quả trên codelearn và online gdb
Còn đây là kết quả khi chạy trên dev c++ :
5
1 2 3 4 5
2 6
3
Mọi người giải thích hộ em với ạ