30/09/2018, 17:43
Lỗi tìm và đếm số lần xuất hiện tập từ chung của 2 xâu
Cho hai xâu ký tự S1 và S2. Hãy viết chương trình tìm các từ chung của hai xâu S1 và S2. Chú ý: mỗi từ chỉ liệt kê 1 lần kèm theo tổng số lần xuất hiện trong 2 xâu, theo thứ tự xuất hiện trong xâu S1.
INPUT:
2
abc ab ab ab abcd ab
abc ab
aaa xyz ab zzz abc dd dd abc
dd xyz ttt sas cdc
OUTPUT:
abc 2
ab 5
xyz 2
dd 3
CODE:
#include<stdio.h>
#include<string.h>
FILE *f1 = fopen("m.inp","r");
FILE *f2 = fopen("m.out","w");
struct tu
{
char nd[100];
int xh;
};
tu ds1[100],ds2[100];
int n1=0,n2=0;
void tachtu(char s[],tu ds[],int &n)
{
char *q=strtok(s," ");
while(q!=NULL)
{
strcpy(ds[n].nd,q);
ds[n].xh=1;
n++;
q=strtok(NULL," ");
}
}
void loaitu()
{
int i,j,b[100]={0},c[100]={0};
for(i=0;i<n1;i++)
{
for(j=0;j<n2;j++)
{
if(strcmp(ds1[i].nd,ds2[j].nd)==0)
{
ds1[i].xh++;
ds2[j].xh++;
}
}
}
for(i=0;i<n1;i++)
{
if(b[i]==0)
{
b[i]=1;
for(j=i+1;j<n1;j++)
if(ds1[i].xh>1 && strcmp(ds1[i].nd,ds1[j].nd)==0)
{
b[i]++;
b[j]=-1;
}
if(ds1[i].xh>1) fprintf(f2,"%s %d
",ds1[i].nd,ds1[i].xh);
}
}
}
main()
{
int t;
fscanf(f1,"%d
",&t);
while(t--)
{
char s1[100],s2[100];
fgets(s1,10000,f1);
if(s1[strlen(s1)-1]=='
') s1[strlen(s1)-1]=' ';
fgets(s2,10000,f1);
if(s2[strlen(s2)-1]=='
') s2[strlen(s2)-1]=' ';
n1=n2=0;
tachtu(s1,ds1,n1);
tachtu(s2,ds2,n2);
loaitu();
fprintf(f2,"
");
}
}
Phần đếm số xuất hiện các từ chung của e bị sai. Ai xem giúp vs ạ. E cám ơn.
Bài liên quan
Phần đếm thì đúng nhưng in ra lại bị sai :?
Do đâu thì do đoạn bạn in ra mình ko debug nổi @_@
Nên mình recode lại luôn
Cám ơn b nhiều. CODE của m chạy ra chỉ đúng phần tìm từ chung, còn đếm từ thì sai. Biết code đếm như vậy là sai nhưng lại chưa biết sửa thế nào
Mình test thấy code đếm bạn đúng rồi :v
In ra sai thôi.
Vậy lạ nhỉ? Lúc thi mình cx phải in ra file .inp nên in sai là tạch luôn r
CODE:
B ơi nếu mình sửa INPUT là:
thì OUTPUT của m lại là:
M có bổ sung CODE thêm tí nhưng lại in thừa mất. Vì để nguyên CODE của b thay thử vào INPUT mới của m thì nó chưa ra đúng. B xem hộ m vs?
À thôi m giải đc r b nhé.
Mấy anh viết code viết cách cách ra được hông :’( nhìn code là hết muốn làm gì nữa rồi :’(