鱼C论坛

 找回密码
 立即注册
查看: 522|回复: 3

[已解决]求两个数的平均值

[复制链接]
发表于 2024-1-2 07:51:39 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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);
}
这是用来求两个数的平均值,结果保留两位小数,请问哪里不对
最佳答案
2024-1-2 08:43:21
本帖最后由 jackz007 于 2024-1-2 09:21 编辑

        只要把第1、2行代码的前后顺序调整一下就可以了
  1. z=1.0*(x+y)/2;              // 这个时候的x、y 还没有值怎么计算?此句应该居后
  2. scanf("%d %d",&x,&y);       // 应该先执行此句,再计算 z 值,此句应该居前
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-1-2 07:51:47 | 显示全部楼层
你好!你的代码有一个小问题。在计算平均值之前,你需要先获取用户输入的两个数x和y,然后再计算平均值z。但是在你的代码中,你先计算了z=1.0*(x+y)/2,再接着才使用scanf获取用户输入的x和y的值。

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

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

  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int x, y;
  5.     float z;

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

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

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

  10.     return 0;
  11. }
复制代码


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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-2 08:43:21 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2024-1-2 09:21 编辑

        只要把第1、2行代码的前后顺序调整一下就可以了
  1. z=1.0*(x+y)/2;              // 这个时候的x、y 还没有值怎么计算?此句应该居后
  2. scanf("%d %d",&x,&y);       // 应该先执行此句,再计算 z 值,此句应该居前
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-1-2 09:39:37 | 显示全部楼层
为啥不把x,y的值设置为float呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 17:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表