【输入一串字符串,将字符串去掉重复值,按照asc码从小到大进行排列输出 - CSDN App】http://t.csdnimg.cn/8Xn6V
数组长度小于50万才能用第二种方法
#include<stdio.h>
int main()
{
int i, n=100,k=0,j=0;
//k:数数123的变量,j记录离开队列人数的变量
scanf("%d",&n);
int *a=(int *)malloc(n*sizeof(int));
int * p=a;
for( i=0; i<n; i++)
{*a=0;
a++;
// printf("a1=%d ",(a-p));
//printf("a=%p ",a);
}
a=p;
for(int ii=0; ii<3*n; ii++)
{ for(a=p, i=0; i<n; i++)
{// printf("wei=%d ",i);
if(((*a)==0)&&(k<=2))
{ k++;
// printf("i=%d ",(a-p));
}
if((k==3)&&((*a)==0))
{
*a=1;
k=0;
j++;
// printf("ee%d ",(a-p));
}
if(j==n)
{printf("%d",(a-p)+1);
return 0;}
a++;
// printf("a=%d ",(a-p));
}
}
return 0;
}
#include<stdio.h>
int main()
{
int i, n=100,k=0,j=0;
//k:数数123的变量,j记录离开队列人数的变量
scanf("%d",&n);
int a[n];
for( i=0; i<n; i++) a[i]=0;
for(int ii=0; ii<n; ii++)
{ for( i=0; i<n; i++)
{// printf("wei=%d ",i);
if((a[i]==0)&&(k<=2))
{ k++;
// printf("i=%d ",i);
}
if((k==3)&&(a[i]==0))
{
a[i]=1;
k=0;
j++;
// printf("%d ",i);
}
if(j==n)
{
printf("\n%d",i+1);
return 0;}
}
}
return 0;
}