Mọi ng xem hộ e code sai ở đâu vs ạ. E cám ơn nhiều. Chắc sai ở biến test nhưng e chưa biết sửa ntn. Vì nếu k dính dáng gì đến biến test (biến t) , chạy thử 1 ví dụ bất kỳ code chạy đúng.
LẦN ĐẦU POST BÀI CÓ GÌ SAI SÓT MONG MỌI NGƯỜI GÓP Ý Ạ.
Đề bài: Nhập hai xâu s1 và s2. Hãy viết chương trình tìm các từ xuất hiện trong s1 mà không xuất hiện trong s2. Sau đó xuất xâu s1. (Nhập, xuất ra màn hình bằng đuôi file .inp và .out)
Ví dụ:
INPUT:
2(2 bộ test)
aaa xyz ab abc dd dd abc aaa
xyz dd ttt sas cdc
aaa xyz ab abc dd dd abc aaa
aaa
OUTPUT:
aaa ab abc abc aaa
xyz ab abc dd dd abc
CODE: http://pastebin.com/tRZueEMD (Code hơi dài nên e để vào đg link cho dễ đọc ạ)
#include<stdio.h>
#include<string.h>
FILE *f1 = fopen("14c.inp","r");
FILE *f2 = fopen("14c.out","w");
struct tu
{
char nd[20];
int xh;
};
tu ds1[20],ds2[20];
int n1=0,n2=0;
void tachtu(char s[],int &n,tu ds[])
{
char *p;
p = strtok(s," ");
while (p!=NULL)
{
strcpy(ds[n].nd,p);
ds[n].xh=1;
n++;
p = strtok(NULL," ");
}
}
void loaitu()
{
int i,j;
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 (ds1[i].xh==1) fprintf(f2,"%s ",ds1[i].nd);
}
main()
{
char s1[100],s2[100];
int t;
fscanf(f1,"%d",&t);
while (t--) //bien test
{
fgets(s1,100,f1);
s1[strlen(s1)-1]='\0';
fgets(s2,100,f1);
tachtu(s1,n1,ds1);
tachtu(s2,n2,ds2);
loaitu();
}
}

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