hanyf 发表于 2024-1-2 07:51:39

求两个数的平均值

#include <stdio.h>
int main()
{
int x,y;
float z;
z=1.0*(x+y)/2;
scanf("%d %d",&x,&y);
printf("z的值为%.2f",z);
}
这是用来求两个数的平均值,结果保留两位小数,请问哪里不对

FishC 发表于 2024-1-2 07:51:47

你好!你的代码有一个小问题。在计算平均值之前,你需要先获取用户输入的两个数x和y,然后再计算平均值z。但是在你的代码中,你先计算了z=1.0*(x+y)/2,再接着才使用scanf获取用户输入的x和y的值。

这就导致了问题,因为在计算z的时候,x和y的值还没有被赋予任何数值,所以会得到错误的结果。

为了解决这个问题,你可以将获取用户输入的代码放在计算平均值之前。下面是修改后的代码:

#include <stdio.h>

int main()
{
    int x, y;
    float z;

    printf("请输入两个数(用空格分隔):");
    scanf("%d %d", &x, &y);

    z = 1.0 * (x + y) / 2;

    printf("平均值为:%.2f\n", z);

    return 0;
}

现在,代码会首先提示用户输入两个数,并且通过scanf函数将用户输入的值赋给x和y。然后,再计算平均值并输出结果。

希望能帮助到你!如果还有其他问题,请随时问我。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 2024-1-2 08:43:21

本帖最后由 jackz007 于 2024-1-2 09:21 编辑

      只要把第1、2行代码的前后顺序调整一下就可以了
z=1.0*(x+y)/2;            // 这个时候的x、y 还没有值怎么计算?此句应该居后
scanf("%d %d",&x,&y);       // 应该先执行此句,再计算 z 值,此句应该居前

liyifeng295641 发表于 2024-1-2 09:39:37

为啥不把x,y的值设置为float呢?
页: [1]
查看完整版本: 求两个数的平均值