我有这个程序:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define n 3
#define m 3
int main(void)
{
int i;
int j;
int mat[n][m];
int sum = 0;
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
printf("Enters the matrix values[%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 the i-th line is %d e': %d\n", i, sum);
}
getch();
}
该程序可以工作,但如果 sum 的结果是奇数,则默认近似为第 i 行的平均值。
为了解决这个问题,我将“int summ”更改为“float summ”,但它不起作用。
有人可以帮我吗?
最佳答案
如果将 sum
的类型更改为 float
或 double<,将会工作
,但是您还需要更改 printf
调用中的格式说明符。使用 %f
输出 float
。
关于用 FLOAT 更改 INT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44910085/