c语言错误在函数中显示,一道c语言上奇怪的错误!在per函数中我输入的n的值竟然和printf显...

本文提供了一个使用C语言实现的矩阵输入、显示及基于排列组合计算的示例程序。程序通过用户输入来填充一个四阶方阵,并计算特定条件下的数值总和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

谢谢啦,不过我也编好一个了,请高手指点一下,谢谢!#include

#include 

#define j 4

int a[j][j]={0};

int sum=0;

void swap(int* a, int* b);

int ni(int  ,int ,int ,int );

void main()

{int per(int* h, int i, int n);

for(int b=0;b<=j-1;b++)

for(int c=0;c<=j-1;c++)

{printf("请输入%d",a[b][c]);

scanf("%d",&a[b][c]); }

for(int i=0;i<=j-1;i++)

{for(int g=0;g<=j-1;g++)

{printf("%d ",a[i][g]);}

printf("\n");}

getchar();

int sum1;

int h[j] ={0};

for (int p=0;p

{h[p]=p; }

sum1 =per(h,0,j);

printf("%d",sum1);

}

int  per(int*h,int i,int n)

{

int k;

int g;

int f[j]={0};

if(i == n) {

f[0]=a[h[0]][0];

f[1]=a[h[1]][1];

f[2]=a[h[2]][2];

f[3]=a[h[3]][3];

g=ni(h[0],h[1],h[2],h[3]);

if (g%2==0)

{sum=f[0]*f[1]*f[2]*f[3]+sum;}

if (g%2!=0)

{sum=-f[0]*f[1]*f[2]*f[3]+sum;}}

else

{for(k = i; k 

{swap(h+i, h+k);

per(h, i+1, n);

swap(h+i, h+k);

}

}

return (sum);}

void swap(int* a, int* b)

{

int t;

t = *a; *a = *b; *b = t;

}

int ni(int a  ,int b,int c,int d )

{int l=0;

int n[j]={a,b,c,d};

for(int z=0;z<=j-1;z++)

{for (int f=0;f<=z;f++)

{if ( n[z]

l=l+1;}}

return(l);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值