Em mới nhập môn lập trình C++, em có đoạn code này chưa hiểu nên nhờ các anh chị trong UIT giải thích hộ với ạ :adore:
có cái đoạn chỗ hàm lấy giá trị em chưa được hiểu
Code:
#include <stdio.h> #include <conio.h> #include <string.h> struct PPS { char giatri[27]; //tap tri int n; //so phan tu int vt; //vi tri hien hanh int xdt; //da lay tri chua? }; void khaibao(PPS &D, char *S) { strcpy(D.giatri,S); D.n=strlen(S); D.vt=0; D.xdt=0; } [COLOR="#FF0000"]char laygt(PPS &D) //lay 1 vi tri trong main { char x=D.giatri[D.vt++]; if(D.vt==D.n) D.vt=0; //cap phat vi tri va trang thai if(D.xdt==0) D.xdt=1; return x; }[/COLOR] int kiemtra(PPS D) //kiem tra da het 1 vong tri chua? { return D.vt==0&&D.xdt==1; } void lui() { char a[4]; //3 bien la 3 ki tu PPS D0,D1,D2; //3 domain cho 3 ki tu khaibao(D0,"123"); //khoi tao 3 domain khaibao(D1,"456"); khaibao(D2,"7"); a[0]=laygt(D0); a[1]=laygt(D1); a[2]=laygt(D2); a[3]=0; puts(a); int Stop=kiemtra(D0)&&kiemtra(D1)&&kiemtra(D2); while(!Stop) { if(kiemtra(D1)&&kiemtra(D2)) a[0]=laygt(D0); if(kiemtra(D2)) a[1]=laygt(D1); a[2]=laygt(D2); puts(a); Stop=kiemtra(D0)&&kiemtra(D1)&&kiemtra(D2); } } int main() { puts("Cac phep gan chuoi 3 ki tu: \n"); lui(); getch(); }
Comment