十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#includestdio.h
成都创新互联是一家专注于做网站、成都网站建设与策划设计,清江浦网站建设哪家好?成都创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:清江浦等地区。清江浦做网站价格咨询:18980820575
int a[5];
int len1,len2,len3;
void input(int len1,int len2,int len3)
{
printf("%d %d %d\n",a[len1],a[len2],a[len3]);
}
void solve(int len1,int len2,int len3)
{
input(len1,len2,len3);
if(len1==2) return;
if(len34) len3++;
else if(len23)
{
len2++;
len3=len2+1;
}
else if(len12)
{
len1++;
len2=len1+1;
len3=len2+1;
}
solve(len1,len2,len3);
}
void main()
{
int i;
for(i=0;i5;i++) a[i]=i+1;
printf("所构成组合是:\n");
solve(0,1,2);
return ;
}
int Rank(int m , int n)
{
int nResualt=1 ;
while(n--0)
nResualt*=(m--) ;
return nResualt ;
}
没考虑可能结果太大,超出整型表示的范围
int Rank(int m , int n)
{
int nResualt=1 ;
while(n--0)
nResualt*=(m--) ;
return nResualt ;
}
没考虑可能结果太大,超出整型表示的范围
sizeof(str) / sizeof(int)错了。数组作为函数参数会退化为指针,那再sizeof结果是数组的数据类型的指针的大小了,你可以分别在main函数和mamn函数中输出一下,结果不一样的。所以你会看见那些操作数组的函数的参数中都带有数组的长度。
#include stdio.h
#include time.h
#include stdlib.h
int **new_array(int m, int n)
{
int **a, i, j;
a = (int **)malloc(sizeof(int *) * m);
for(i = 0; i m; i++) {
a[i] = (int *)malloc(sizeof(int) * n);
}
printf("生成%dX%d矩阵:\n", m, n);
srand((unsigned)time(NULL));
for(i = 0; i m; i++) {
for(j = 0; j n; j ++) {
a[i][j] = rand() % 100;
printf("%2d ", a[i][j]);
}
printf("\n");
}
return a;
}
void multiply_array(int **a, int **b, int m, int n)
{
int i, j, k, c;
for(i = 0; i m; i ++) {
for(j = 0; j m; j++) {
c = 0;
for(k = 0; k n; k ++) {
c += a[i][k]*b[k][j];
}
printf("%4d ", c);
}
printf("\n");
}
}
void delete_array(int **a, int m)
{
int i;
for(i = 0; i m; i++)
free(a[i]);
free(a);
}
void main()
{
int **amn, **anm, m, n;
printf("输入m和n:");
scanf("%d %d", m, n);
amn = new_array(m, n);
anm = new_array(n, m);
printf("矩阵的乘积为:\n");
multiply_array(amn, anm, m, n);
delete_array(amn, m);
delete_array(anm, n);
}