首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C的wrong answer

2012-02-10 
求助C的wrong answer给你K个字符串,请求出它们的最长公共前缀。输入第一行是一个整数N,表示测试样例的个数。

求助C的wrong answer
给你K个字符串,请求出它们的最长公共前缀。输入第一行是一个整数N,表示测试样例的个数。每个测试样例的第一行是一个整数K(2 <= k <= 20),表示有多少个字符串;以后每行是一个字符串,每个字符串的长度不超过200个字符。 输出每行输出一个样例的结果。先输出“Case #: ”,其中’#’为样例的序号(从1开始),冒号为英文冒号,后接一个空格;然后是对应样例的结果。如果没有公共前缀,则无需输出前缀,但Case信息仍需要输出。  
  
Sample Input  
2
3
ACD
ACDEF
ACDFE
2
ABC
BCD
 
  
Sample Output  
Case 1: ACD
Case 2: 
 




我的代码是:

#include<stdio.h>
#include<string.h>
void main()
{
 int len,i,k,n,count=1;
 char s[205],p[205]; 
 scanf("%d",&n);
 getchar();
 while(n--)
 {
  scanf("%d",&k);
  getchar();
  gets(p); //获得第一个串 设为公共串
  k--;
  while(k--)
  {
  gets(s);
  for(i=0;s[i]==p[i];i++); //获得的每个串与公共串比较
  len=i;  
  if(len==0)
  break;
  p[len]='\0'; //更新公共串


  }
  printf("Case %d: ",count++);
  if(len)
  {
  for(i=0;p[i]!='\0';i++)
  printf("%c",p[i]);
  }

  printf("\n");
 }
}


一直Wrong Anwser 为什么?


一直wrong

[解决办法]

探讨
我已经知道是哪错了
应该把
if(len==0)
break;
去掉


不然会提前跳出来 继续输入的字符串会进入下一个用例

热点排行