c语言问题35

来源:百度知道 编辑:UC知道 时间:2024/06/19 18:27:58
设有一个数组a[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20},从头开始将每第三个元素删除得一个新数组{1,2,4,5,7,8,10,11,13,14,16,17,19,20}然后重复上述删除过程,直到最后的数组只有两个元素为止。

本题的一个完整的c程序如下,win-tc和Dev-c++下已运行通过。
#include <stdio.h>
#include <conio.h>

int sum=20;
main()
{
int m[20][21],n[21],i,j,k,s;
for(i=1;i<=20;i++)
{ m[0][i]=n[i]=i;
printf("%-4d",n[i]);
}
for(j=0;j<20;j++)
{ k=s=1;
for(i=1;i<=sum;i++)
{ n[i]=m[j][k];
if(i%3)
{ m[j+1][s]=n[i];
printf("%-4d",m[j+1][s]);
s++;
}
k++;
}
sum=s-1;
if(s<4) /*检测,如果数组只剩下2个元素立即退出循环*/
break;
printf("\n");
}
printf("\n\n Press any key to quit...\n");
getch();
}