讨论 / 路过的大佬们,为啥我的代码提交有错误呀?
Tirey 2017-01-06 05:03:05
点我顶贴 收藏 删除
#include <stdio.h>

#include <stdlib.h>

int main()

{

int n,i,j,t;

scanf("%d",&n);

int a[n+1];

for(i=0; i<n; i++)

{

scanf("%d",&a[i]);

}

for(i=0; i<n; i++)

{

for(j=0; j<n-i-1; j++)

{

if(a[j]>a[j+1])

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

}

int bj=a[0]-1;

for(i=0;i<n;i++)

{

while(a[i]==a[i+1])

{

a[i+1]=bj;

i++;

}

}

int count=0;

for(i=0;i<n;i++)

{

if(a[i]!=bj)

{

count++;

}

}

printf("%d\n",count);

for(i=0;i<n;i++)

{

if(a[i]!=bj)

{

printf("%d ",a[i]);

}

}

return 0;

}

#1 Sky_miner@2017-01-08 05:34:27
回复 删除
能不能先说明是什么类型的错误和是哪道题目

#2 Sky_miner@2017-01-08 05:42:58
回复 删除
。。。是我傻了,,没上过Rqnoj。。看到了题目

提供一组你错误的数据:

5

1 1 1 1 1

输出应该是1 1你输出是3 1 1 1

问题应该出在判断上,但是没有细看。

不过你可以尝试使用桶排,一种通过使用空间来降低时间复杂度的排序算法

my code

#include<cstdio>

using namespace std;

bool a[1000 + 10];

int main(){

____int n;scanf("%d",&n);

____int t,cnt=0;

____while(n--){

________scanf("%d",&t);

________if( !a[t] ){

____________a[t] = true;

____________cnt++;

________}

____}

____printf("%d\n",cnt);

____for(int i=1;i<=1011;i++){

________if( a[i] ) printf("%d ",i);

____}

}

#3 Sky_miner@2017-01-08 05:43:37
回复 删除
#include<cstdio>

using namespace std;

bool a[1000 + 10];

int main(){

int n;scanf("%d",&n);

int t,cnt=0;

while(n--){

scanf("%d",&t);

if( !a[t] ){

a[t] = true;

cnt++;

}

}

printf("%d\n",cnt);

for(int i=1;i<=1011;i++){

if( a[i] ) printf("%d ",i);

}

}

WOC,这**毁缩进

#4 5一号@2017-01-21 18:49:47
回复 删除
c语言不能直接a[n+1]吧。。
查看更多回复
提交回复