gpt4 book ai didi

c - 对矩阵元素求和并计算第 i 行的平均值

转载 作者:行者123 更新时间:2023-11-30 14:56:17 25 4
gpt4 key购买 nike

大家好,我对 C 语言的练习有疑问。
练习是:
给定一个矩阵,编写一个函数:
A) 计算并返回元素之和。
B) 计算并返回第i行的平均值
我做了我自己的程序,但有很多错误。
我的程序是:

#include <stdio.h>
#include <stdlib.h>

void main(){
int n=10;
int m=10;
int i;
int j;
int mat [i][j];
int sum=0;
for (i=0;i<n;i++){
for (j=0; j<m;j++)
sum=sum+mat[i][j];}
printf("The sum of all elements of matrix is:%d",sum);
somma=0;
for (j=0;j<m;i++){
sum=sum+mat[i][j];
sum=sum/m
printf("The average of i-th line is:%d",sum);
}
}

我认为我必须将 scanf 放在某个地方,但我不知道在哪里。我希望你能帮助我谢谢!

最佳答案

您声明了一个未定义大小的矩阵

int mat [i][j];

其中 ij 未初始化。

你可能想要

int mat [n][m];

此外,您的矩阵应该用值进行初始化,否则您将得到堆栈垃圾的总和。

最后,一个可能的解决方案是

#include <stdio.h>

int main(void)
{
int n = 2;
int m = 2;
int i;
int j;
int mat[n][m];
int sum = 0;

for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
printf("Insert value of mat[%d][%d]: ", i, j);
scanf("%d", &mat[i][j]);
}
}

for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
sum = sum + mat[i][j];
}
}

printf("The sum of all elements of matrix is: %d\n", sum);

for (i = 0; i < n; i++)
{
sum = 0;
for (j = 0; j < m; j++)
{
sum = sum + mat[i][j];
}
sum = sum / m;
printf("The average of line %d is: %d\n", i, sum);
}
}

如您所见,我更改了平均值计算:

  1. 首先,您编写了一个 j 循环,递增 i
  2. 您必须循环所有行,因此必须添加一个包含行的 for 循环
  3. 每次计算行平均值时都必须重置总和

请注意,平均值是使用整数计算的,因此没有小数。

关于c - 对矩阵元素求和并计算第 i 行的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44829164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com