C语言的,希望用数组解答

 

代码如下,如有帮助,请采纳一下,谢谢。

#include <stdio.h>

//判断数组中元素等于1的个数是否等于m
int isHalf(int a[],int n,int m)
{
	int i,nmb = 0;
	for (i = 0;i<n;i++)
	{
		if(a[i] == 1)
			nmb++;
	}
	if(nmb == m)
		return 1;
	else
		return 0;
}

int main()
{
	int a[30];
	int i = 0;
	int nmb = 1;
	//数组初始化为0
	for (i = 0;i<30;i++)
		a[i] = 0;
	i = 0;
	printf("给冰淇淋的孩子:\n");
	while (1)
	{
		if (isHalf(a,30,15))
		{
			break;
		}else
		{
			i++;
			if(i ==30)
				i = 0;
			if (a[i] == 0)
			{
				nmb++;
				if ( nmb == 9)
				{
					a[i] = 1;
					printf("第%2d个孩子\n",i+1);
					i++;
					if(i == 30)
						i = 0;
					nmb = 1; //从1开始
				}
			}
		}
	}
	return 0;
}