| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
样例过了但是一直WA,求大神解答,谢谢#include<stdio.h>
#include<string.h>
int a[101][27];//字典单词矩阵二
int b[101][27];//查询单词矩阵二
int c[101];//记录字典单词先后顺序的信息,越靠前的单词值越大
int e[101][51];//记录查询的单词每一个对应着几个字典里的词,分别是谁
int s[101];//中间字符串
/*排序*/
void function(int *p,int n)
{
int i,limit,temps,k,q;
limit=0;
while(limit<n-1)
{
for(i=0;i<n-1-limit;i++)
{
k=*(p+i-1);
q=*(p+i);
if(*(p+i)<*(p+i+1))
{
temps=*(p+i);
*(p+i)=*(p+i+1);
*(p+i+1)=temps;
}
}
limit++;
}
}
int main()
{
char d[101][7],w[101][7];
int i,j,k,l,n,q,m;
int *p;
//输入词典
i=0;
scanf("%s",&d[i]);
while(strcmp(d[i],"XXXXXX"))
{
i++;
scanf("%s",&d[i]);
}
//输入要查询的单词
j=0;
scanf("%s",&w[j]);
while(strcmp(w[j],"XXXXXX"))
{
j++;
scanf("%s",&w[j]);
}
//存入A矩阵,并且记录单词的字母表排序信息
for(k=0;k<i;k++)
{
for(l=0;l<strlen(d[k]);l++)
{
n=d[k][l]-97;
a[k][n]++;
c[k]=c[k]+n*(l+1);
}
}
//存入B矩阵
for(k=0;k<j;k++)
{
for(l=0;l<strlen(w[k]);l++)
{
n=w[k][l]-97;
b[k][n]++;
}
}
//比较A矩阵和B矩阵
for(k=0;k<j;k++)
{
m=0;
for(l=0;l<i;l++)
{
e[k][0]=0;
for(q=0;q<26;q++)
{
if(a[l][q]==b[k][q])
e[k][0]++;
}
if(e[k][0]==26)
{
e[k][m+1]=l+1;
m++;
}
}
e[k][50]=m;
}
//输出
for(k=0;k<j;k++)
{
if(e[k][50]==0)
printf("NOT A VALID WORD\n");
else if(e[k][50]==1)
{
q=e[k][1];
printf("%s\n",d[q-1]);
}
else
{
for(l=1;l<=e[k][50];l++)
{
q=e[k][l];
s[l-1]=c[q-1];
}
p=s;
function(p,e[k][50]);
for(m=0;m<e[k][50];m++)
{
for(l=0;l<=101;l++)
{
if(c[l]==s[m])
printf("%s\n",d[l]);
}
}
}
printf("******\n");
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator