1、有一个数组a[1000]存放0-1000.要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以7个数为例:{0,1,2,3,4,5,6,7}0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。
代码:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#define total_left 1000
#define flag_num 1111
using namespace std;
void test(int a[])
{
int a_count = total_left; //数组中剩下元素总个数
int i = 0;
int j = 0; //用来计数,隔两位删除一个
int k = 0;
while (a_count > 1)
{
for (i = 0; i < total_left; i++)
{
if (a[i] != flag_num)
{
j++;
if (j == 3)
{
a[i] = flag_num;