用 FLOAT 更改 INT

标签 c

我有这个程序:

#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类型更改为 floatdouble<,将会工作但是您还需要更改 printf 调用中的格式说明符。使用 %f 输出 float

关于用 FLOAT 更改 INT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44910085/

相关文章:

c - 在 qemu 中打印内存地址范围

c - 使用 c 检测文件中的重复行

c - 如何找到数组的大小(从指向数组第一个元素的指针)?

c - While 循环用 Char 中断

c - c中的for循环只能有一条语句吗?

c - C中memset的目的是什么

c - 令人难以置信的程序崩溃调用堆栈

c - 如何防止scanf导致C语言缓冲区溢出?

c - 数组名称为指针,数组名称带有 & 运算符

c - 如何在 lex 中为 c 类型整数编写正则表达式?