爱问知识人 爱问教育 医院库

北大ACM1002题不知道哪里出问题了

首页

北大ACM1002题不知道哪里出问题了

这是我的代码,就是第6个位置(a[i][5])不知道哪里出错了
希望你们能帮忙看一下
不胜感谢!
#include
#include
void main(void)
{
int n,i,j,tmp,count;
char a[50][20];
char b[20];
char *pa[50];
//读入n
scanf("%d",&n);
getchar();
//读入数据
for (i=0; i0)
{
strcpy(b,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],b);
}
}
}
//输出
for (i=0; i<n;)
{
count=1;
for(j=i 1; strcmp(a[i],a[j])==0; j )
{
count ;
}
if(count!=1)
printf("%s %d ",a[i],count);
i=j;
}
if (count==1)
printf("No duplicates. ");
}

提交回答

全部答案

    2017-10-12 12:21:00
  •   几个错误
    1。 输入量较大,你的空间不够
    2。 输入量较大,冒泡明显不合时间要求
    3。 strcpy的用法错误,体现在strcpy(&a[i][4],&a[i][3]),这里strcpy的两个地址出现空间重合
    修改后会得到TLE的Verdict。
      
    #include
    #include
    main(void)
    {
    int signal = 1;
    int n,i,j,tmp,count;
    char a[100000][20];
    char b[20];
    // char *pa[50];
    //读入n
    scanf("%d",&n);
    getchar();
    //读入数据
    for (i=0; i0)
    {
    strcpy(b,a[i]);
    strcpy(a[i],a[j]);
    strcpy(a[j],b);
    }
    }
    }
    //输出
    for (i=0; i {
    count=1;
    for(j=i 1; strcmp(a[i],a[j])==0; j )
    {
    count ;
    signal = 0;
    }
    if(count!=1)
    printf("%s %d ",a[i],count);
    i=j;
    }
    if (signal==1)
    printf("No duplicates。
      ");
    }。

    你***

    2017-10-12 12:21:00

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):