n为整数的位数,a为指针数组,怎么样对数组进行动态内存分配?
#include<stdio.h>#include<stdlib.h>
void main()
{
int m,n,k,i,sum,s[10]={0}; //数组s是标志数组,初始值都是0,如果i在m,2*m,3*m的某个数位中,则使得a[i]=1 (i:从1取到9).
for(m=123;m<329;m++) //因为各数位数字不同,而且3m<999
{
n=2*m; k=3*m;
s[m/100]=s[m%100/10]=s[m%10]=1; //其中m/100、m%100/10、m%10分别是m三个数位上的数字,如,m/100=5,则左边赋值语句使得a[5]=1,下边类似
s[n/100]=s[n%100/10]=s[n%10]=1;
s[k/100]=s[k%100/10]=s[k%10]=1;
sum=0;
for(i=1;i<10;i++)sum+=s[i]; //累加a[1]到a[9],如果sum==9,说明从1到9都取到了,满足要求,输出结果。
if(sum==9)printf("%5d%5d%5d\n",m,n,k);
for(i=1;i<10;i++)s[i]=0; //将标志数组s重新置为0,准备下一个m的验证
}
system("pause");
}
上面的方法是非指针的,有高手会用指针的方法吗?
void find (int n,int *a[]) 其中n为整数的位数,a为指针数组,怎么样对数组进行动态内存分配?