C语言编写程序求5行5列矩阵的上三角元素之积。 100

 我来答
百度网友dad5273d3
2020-05-05
知道答主
回答量:9
采纳率:0%
帮助的人:5218
展开全部

void fun (char s[][5]);

int main()

{

char s[5][5];

int i,j;

printf("请输入5行5列的矩阵:");

for(i=0;i<5;i++)

for(j=0;j<5;j++)

{

scanf("%d",&s[i][j]);

}

fun(s);

system("pause");

}

void fun (char s[][5])

{

long int sum=1, i,j;

for(i=0;i<5;i++)

for(j=i;j<5;j++)

{

sum*=s[i][j];

}

printf("%ld",sum);


}

        

Ma_se
2020-05-05 · TA获得超过328个赞
知道小有建树答主
回答量:403
采纳率:75%
帮助的人:106万
展开全部
// 1  2  3  4  5
// 6  7  8  9  10
// 11 12 13 14 15
// 16 17 18 19 20
// 21 22 23 24 25
// 5*5即25个整数malloc(sizeof(int)*25)
// 因为题目矩阵固定,上三角是2 3 4 5 8 9 10 14 15 20元素.所以直接取出相乘就行了

void main(){
int postable[10] = {2,3,4,5,8,9,10,14,15,20};
int *m = (int*)malloc(sizeof(int)*25);
int i = 0, d = 1;
while(i<25)
scanf("%d",m + i++);
for(i=0;i<10;i++)
d *= *(m + postable[i] - 1);
printf("%d",d);
free(m);
}

// 如果不想用表来取上三角,则:
#define x 5
void main()
{
int *m = (int *)malloc(sizeof(int) * x * x);
int i = 0, j = 0, d = 1;

while(i < x * x)
scanf("%d", m + i++);

for(i = 0; i < x; i++)
for(j = i + 1; j < x; j++)
d *= *(m + i * x + j);

printf("%d", d);
free(m);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
代理服务器
2020-05-04 · TA获得超过1063个赞
知道小有建树答主
回答量:1184
采纳率:72%
帮助的人:77.2万
展开全部
写个两层的for循环,每一行用i表示,而每一列用j表示。其他的就是一些基本的控制,然后就是把内层的控制循环条件写成i小于等于 j就行了,毕竟算的是上三角的那部分。然后定义一个total或者sum的变量记录乘积就行了。
追问
能写下过程吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式