xie

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能 !
程序代码:#include<stdio.h>
main()
{
int a[10]; /*定义一个有十个元素的数组,存放编号*/
int i,j,*k,p=1,t=0,m=1; /*i,j用于循环,k为指向数组元素的指针,p用来记录指针移动次数*/
for(i=0;i<10;i++) /*t用来记录已经退出的个数,m累计10次后指针回归数组首元素*/
a[i]=i+1; /*为数组循环赋值1~10*/
k=a; /*指针指向首元素*/
for(j=1;j<1000;j++)
{
if((m-1)%10==0)k=a; /*m累计10次后指针回指*/
while(*k==0){k++;m++;} /*若指针指向的元素值为0,指针下移,m累计加1*/
if(p%4==0)
{ /*指针有效移动(所指向元素不为0)后,将指针所致元素赋值为0,t累计加1*/
*k=0;
t++;
if(t==9) /*t累计为9(即已经有9个元素被赋值为0)后,跳出循环*/
break;
}
k++; /*无论以上if语句是否成立,每次循环,k、m、p均累计加1*/
m++;
p++;
while(*k==0){k++;m++;}/*判断两次*/
}
for(i=0;i<10;i++)
{ /*循环输出数组中值不为0的元素*/
if(a[i]!=0)
printf("%d\t",a[i]);
}
return 0;
}?
程序代码:#include<stdio.h>
void main()
{
void sefu(int m,int n);
int m,n,i;
for(i=0;i<1000;i++)
{
printf("Please input the number of the total:");
scanf("%d",&m);
printf("please input a number:");
scanf("%d",&n);
if(m>n&&m<1000)break;
else
{
printf("error!re-input please!");
m=0;
n=0;
}
}
sefu(m,n);
getch();
}
void sefu(int m,int n)
{
int a[1000];
int i,j,k=0,w=1,q=0,*p;
for(i=0;i<m;i++)
a[i]=i+1;
p=a;
for(i=0;i<10*m;i++)
{
if(*p==0)
{
do
{
p++;
k++;
if(k==m){p=a;k=0;}
}
while(*p==0);
}
if(w==n)
{
*p=0;w=0;q++;
}
p++;
w++;
k++;
if(k==m){p=a;k=0;}
if(q==m-1)break;
}
for(j=0;j<m;j++)
if(a[j]!=0)printf("the number is: %d\n",a[j]);
}
一通百通,浑身轻松