2 qq 27416233 qq_27416233 于 2016.04.17 23:09 提问

小白 求 大神 帮忙找下错误.实在是找不出来了

#include
#include
#include
int main()
{
int m , N , i , k , k1,k2=0 , j , temp,flag;

int *p;

int array[1001];

int array1[1001]; 

//p=array;

//************************************************这个是把数组随机出来

srand(time(NULL));

scanf("%d",&N);

for(i = 0 ;i < N; i++ )
{
    array[i] = rand()%1000+1;
}


/*for(i = 0; i< N;i++)
{
    printf("%d  ",array[i]);
}
*/
k= N;

//****************************************************

//***********************************************删掉多余的数字
for(i=0;i<N;i++)
{
for(j=i+1;j<N;j++)
{
if(array[i]==array[j])
{
flag=0;break;
}
}
if(flag==1)
{
array1[k2]=array[i];
//printf("%d ",array[k]);
k2++;
}
flag=1;
}
//*************************************************

//*************************************************这个使用来排序的
for( i = 0; i < k2;i++)
{
for( j = 0; j < k2; j++)
{
if(array1[i]<array1[j])
{
temp = array1[i];

            array1[i] = array1[j];

            array1[j] = temp;           
        }
    }   
}

for( i = 0; i < k2-1 ; i++)
{
    printf("%d ",array1[i]);    
}
printf("%d",array1[k2-1]);

return 0;   

}

5个回答

caozhy
caozhy   Ds   Rxr 2016.04.17 23:19
 #include <stdio.h>
int main()
{int i,j,n,sum=0,x[1001]={0};
scanf("%d",&n);
for (i=1;i<=n;i++)
{scanf("%d",&j);
if (x[j]==0) sum++;
x[j]=1;
}
printf("%d\n",sum);
for (i=1;i<=1000;i++)
if (x[i]==1) printf("%d ",i);
return 0;
}    
qq_27416233
qq_27416233 谢谢
一年多之前 回复
AgoniAngel
AgoniAngel   Rxr 2016.04.17 23:34

你的代码放在其他地方没有问题,但这是ACM题,你的输入显然不符合ACM/ICPC题目的格式。
题目已经给出输入样例,也就是说随机数不是你自己生成的,而是用户按那个样例输入的。
可参考以下代码,以C++提交,有任何问题可以提出来。

#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;

int main()
{
    int  n,i,j,k,sign,a[1100],b[1100];
    while(scanf("%d",&n)!=EOF)
    {
        for(i=0;i<n;i++)
          scanf("%d",&a[i]);
        k=0;
        for(i=0;i<n;i++)
        {
            sign=1;
            for(j=i+1;j<n;j++)
            {
                if(a[i]==a[j])
                {
                    sign=0;
                    break;
                }
            }
            if(sign==1)
            {
                b[k++]=a[i];
            }
        }
        sort(b,b+k);
        printf("%d\n",k);
        printf("%d",b[0]);
        for(i=1;i<k;i++)
          printf(" %d",b[i]);
        printf("\n");
    } 
    return 0;
}
qq_27416233
qq_27416233 嗯.输出格式错了.谢谢大神
一年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.04.17 23:18
 #include <stdio.h>
int main()
{
    int n,i,j,p[1001];
    scanf("%d",&n);
    for(i = 0; i < n; ++i)
    scanf("%d",&p[i]);
    for(i = 0; i < n; ++i)
    {
        for(j = i + 1; j < n; ++j)
        {
            if(p[i] == p[j])
            p[j] = 0;
        }
    }
    for(i = 0; i < n; ++i)
    {
        int k = i;
        for(j = i+1; j < n; j++)
        if(p[k] > p[j])
        k = j;
        if(k != i)
        {
            int t = p[i];
            p[i] = p[k];
            p[k] = t;
        }
    }
    int sign = 0;
    for(i = 0; i < n; ++i)
    if(p[i] != 0)
    sign++;
    printf("%d\n",sign);
    for(i = 0; i < n; ++i)
    if(p[i] != 0)
    printf("%d ",p[i]);
}
qq_27416233
qq_27416233   2016.04.17 23:11

图片说明

CSDNXIAON
CSDNXIAON   2016.04.17 23:12

求大神帮忙找错
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!