最后一个测试点过不了!!求指教

#include<stdio.h>
int main()
{
int n,a[100],i,j,z,t;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]==a[j])
{
for(z=j;z<n-1;z++)
{
a[z]=a[z+1];
}
n--;
}
else
continue;
}
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("%d\n",n);
for(i=0;i<n;i++)
printf(" %d",a[i]);
printf("\n");
return 0;
}

2 条评论

  • @ 2016-11-19 09:23:31

    #include<iostream>
    #include<math.h>

    using namespace std;
    int a[1000];
    int main()
    {
    int i,j,k,n,t=0;
    cin>>n;
    for(i=0;i<n;i++) cin>>a[i];
    for(i=0;i<n;i++)
    for(j=i+1;j<n;j++)
    if(a[i]==a[j])
    a[j]=0;
    for(i=0;i<n;i++)
    for(j=i+1;j<n;j++)
    if(a[i]>a[j])
    swap(a[i],a[j]);
    for(i=0;i<n;i++)
    if(a[i]!=0)
    t++;
    cout<<t<<endl;
    for(i=0;i<n;i++)
    if(a[i]!=0)
    cout<<a[i]<<" ";
    return 0;

    }

  • @ 2016-11-19 09:23:30

    #include<iostream>
    #include<math.h>

    using namespace std;
    int a[1000];
    int main()
    {
    int i,j,k,n,t=0;
    cin>>n;
    for(i=0;i<n;i++) cin>>a[i];
    for(i=0;i<n;i++)
    for(j=i+1;j<n;j++)
    if(a[i]==a[j])
    a[j]=0;
    for(i=0;i<n;i++)
    for(j=i+1;j<n;j++)
    if(a[i]>a[j])
    swap(a[i],a[j]);
    for(i=0;i<n;i++)
    if(a[i]!=0)
    t++;
    cout<<t<<endl;
    for(i=0;i<n;i++)
    if(a[i]!=0)
    cout<<a[i]<<" ";
    return 0;

    }

  • 1

信息

ID
1316
难度
3
分类
其他 | 排序 点击显示
标签
递交数
9961
已通过
4874
通过率
49%
被复制
33
上传者