重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
为东乡族等地区用户提供了全套网页设计制作服务,及东乡族网站建设行业解决方案。主营业务为成都网站建设、网站设计、东乡族网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
#include stdlib.h
#define N 15
void fun(int *a,int n,int p)
{
int *aa,i;
aa=(int *)malloc(sizeof(int)*n);
for(i=0;in;i++)
aa[i]=a[(i+p)%n];
for(i=0;in;i++)
a[i]=aa[i];
free(aa);
}
int main(){
int a[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int i;
for(i=0;iN;i++)
printf("%4d",a[i]);
printf("\n");
fun(a,N,6);
for(i=0;iN;i++)
printf("%4d",a[i]);
printf("\n");
}
main函数的fun函数的两个实参,分别为(a++,b++,a+b)和 c++
前者是一个逗号表达式,从左向右计算,其值为最后a+b的值,等于2+3=5
c++是一个后自增表达式,先取c的值传递到形参,然后c再自增。传递的值是3。
所以,最后程序的输出是8。
① 自定义矩阵阶数,函数间传递数组
#include stdio.h
main()
{
int i,j,n,s;
printf("请输入矩阵阶数:");
scanf("%d",n);
int fun(int n,int a[][n]);
int a[n][n];
printf("请输入矩阵元素:\n");
for(i=0;in;i++)
for(j=0;jn;j++)
scanf("%d",a[i][j]);
s=fun(n,a);
printf("该矩阵主对角线和为:%d\n",s);
}
int fun(int n,int a[][n])
{
int s=0,i;
for(i=0;in;i++)
s+=a[i][i];
return s;
}
② 自定义矩阵阶数,函数间传递指针
#include stdio.h
main()
{
int i,j,n,s;
printf("请输入矩阵阶数:");
scanf("%d",n);
int fun(int n,int (*a)[n]);
int a[n][n];
printf("请输入矩阵元素:\n");
for(i=0;in;i++)
for(j=0;jn;j++)
scanf("%d",a[i][j]);
s=fun(n,a);
printf("该矩阵主对角线和为:%d\n",s);
}
int fun(int n,int (*a)[n])
{
int s=0,i;
for(i=0;in;i++)
s+=a[i][i];
return s;
}
③ 规定函数阶数,函数间传递数组
#include stdio.h
#define N 4
int fun(int a[][N]);
main()
{
int a[N][N],i,j,s;
printf("矩阵阶数:%d\n",N);
printf("请输入矩阵元素:\n");
for(i=0;iN;i++)
for(j=0;jN;j++)
scanf("%d",a[i][j]);
s=fun(a);
printf("该矩阵主对角线和为:%d\n",s);
}
int fun(int a[][N])
{
int s=0,i;
for(i=0;iN;i++)
s+=a[i][i];
return s;
}
④ 规定函数阶数,函数间传递指针
#include stdio.h
#define N 4
int fun(int (*a)[]);
main()
{
int a[N][N],i,j,s;
printf("矩阵阶数:%d\n",N);
printf("请输入矩阵元素:\n");
for(i=0;iN;i++)
for(j=0;jN;j++)
scanf("%d",a[i][j]);
s=fun(a);
printf("该矩阵主对角线和为:%d\n",s);
}
int fun(int (*a)[N])
{
int s=0,i;
for(i=0;iN;i++)
s+=a[i][i];
return s;
}
以4阶为例,运行结果为: