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]); }一通百通,浑身轻松