c 语言问题 求解答

[复制链接]
查看11 | 回复4 | 2021-1-11 04:50:36 | 显示全部楼层 |阅读模式
输出三个数 值最大的 /* Note:Your choice is C IDE */
  #include "stdio.h"
  void main()
  {
  int a,b,c,d;
  scanf("%d,%d,%d",&a,&b,&c);
  d=max(a,b,c);
  printf("max=%d.\n",d);
  以下为两中方案
  int max(int x ,int y,int z)
  {
  int w;
  if(x>(y+z)/2) w=x;
  if(y>(x+z)/2) w=y;
  else(z);
  return(w);
  }
  方案 二
  int max(int x ,int y,int z)
  {
  int w;
  if(x>(y+z)/2) w=x;
  if(y>(x+z)/2) w=y;
  if(z>(x+y)/2) w=z;
  return(w);
  }
  请问方案 一 那里错了
回复

使用道具 举报

千问 | 2021-1-11 04:50:36 | 显示全部楼层
别拍砖我是早上才开始自学的
回复

使用道具 举报

千问 | 2021-1-11 04:50:36 | 显示全部楼层
0 回复
回复

使用道具 举报

千问 | 2021-1-11 04:50:36 | 显示全部楼层
方案一的话:x=1 y=4 z=5 会输出4
  方案二应该也不对吧
  直接用x>y&&x>z这种式子多好
回复

使用道具 举报

千问 | 2021-1-11 04:50:36 | 显示全部楼层
第一个语法就不对吧,你返回值总是W的 如果z最大 并没有把z的值赋给W
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行