帮我解决以下这个编程题!谢谢大家!
编写函数void countValue(int *a, int *n),功能是:求出1到1000之内能被7或11整除但不能同时被7或11整除的所有整数并存放在数组a中,并通过n返回这些满足条件整数的个数。
程序代码:/* File Name: CountValue.c
* Date: 2010/11/29
* Des:求出1到1000之内能被7或11整除但不能同时被7或11
* 整除的所有整数并存放在数组a中,并通过n返回这些满
* 足条件整数的个数.
*/
#include <stdlib.h>
#include <stdio.h>
#define MIN_NUMBER 1
#define MAX_NUMBER 1000
/*Model*/
#define MODEL_EXP( valName, num, sign, res) (valName % num sign res)
#define MODEL_EXP_EQUAL_ZERO( valName, num) MODEL_EXP( valName, num, ==, 0)
#define MODEL_EXP_NEQUAL_ZERO( valName, num) MODEL_EXP( valName, num, !=, 0)
void countValue( int *, int *);
int main( int argc, char * argv[])
{
int * numArray = ( int *)calloc( sizeof( int), MAX_NUMBER);
int count = 0;
int i = 0;
countValue( numArray, &count);
/*Show array*/
while( i < count)
{
if ( MODEL_EXP_EQUAL_ZERO( i, 10))
{
printf("\n");
}
printf( "%3d ", numArray[i]);
i++;
}
free( numArray);
return 0;
}
void countValue( int * a, int * n)
{
int number = MIN_NUMBER;
*n = 0;
for ( ; number < MAX_NUMBER; number++)
{
if( ( MODEL_EXP_EQUAL_ZERO( number, 7) && MODEL_EXP_NEQUAL_ZERO( number, 11))
||
( MODEL_EXP_EQUAL_ZERO( number, 11) && MODEL_EXP_NEQUAL_ZERO( number, 7))
)
{
a[ ( *n)++] = number;
}
}
}









5分至于抢吗
