为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不能用 语句一?语句二:语句三;

int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };

       

int max = 0; // 假定最大值为数组中的第一个元素

int min = 0; // 假定最小值为数组中的第一个元素

double sum = 0;// 累加值

double avg = 0;// 平均值

       

for (int i = 0; i <6; i++) {

           

           max>nums[i]?max=max:max=nums[i];

           // 循环遍历数组中的元素

       // 如果当前值大于max,则替换max的值

       

        min<nums[i]?:min=nums[i];

        

        sum=sum+nums[i];

        i==5?avg=sum/6:i=1;

       // 如果当前值小于min,则替换min的值

       

       

       

       // 累加求和

       

       

}

       

       // 求平均值

      

       

System.out.println("数组中的最大值:" + max);

System.out.println("数组中的最小值:" + min);

System.out.println("数组中的平均值:" + avg);         );


正在回答

5 回答

int max = 0; // 假定最大值为数组中的第一个元素
int min = 0; // 假定最小值为数组中的第一个元素

建议将这两句语句改成

int max=nums[0];
int min=nums[0];

将代码

i==5?avg=sum/6:i=1;

删除,并在

System.out.println("数组中的最大值:" + max);

前,加上

avg=sum/6;

最后,你的代码结束有个");"是几个意思???

0 回复 有任何疑惑可以回复我~

你的逻辑并没有错

  1. 如果“表达式a”成立就执行 “表达式b”否则就执行 “表达式c,并返回运算结果

  2. 需接收或处理返回结果否则程序报错,且表达式(a,b,c)不能为空,没加括号不影响执行。

在你的代码中

max>nums[i]?max=max:max=nums[i];
min<nums[i]?:min=nums[i];
i==5?avg=sum/6:i=1;

第一句没接收计算结果,第二句“表达式b”为空


0 回复 有任何疑惑可以回复我~


回复51cds:

max>muns[i]?:max=unms[i];

如果“表达式a”成立就执行 “表达式b”否则就执行 “表达式c”

 我的逻辑并没有错,但是执行不了, http://img1.sycdn.imooc.com//56641b0e0001203b06070032.jpg

你这个应该也会出错吧,后面应该加括号吧max=(max>muns[i]?:max=unms[i]);


0 回复 有任何疑惑可以回复我~

语句错误

max>nums[i]?max=max:max=nums[i];
min<nums[i]?:min=nums[i];
i==5?avg=sum/6:i=1;

第一句应改成

max=max>nums[i]?max:nums[i];

后两句也一样


ps:你所说的 "语句一?语句二:语句三" 是错的,正确的格式应该是 “表达式一?表达式二:表达式三”。

0 回复 有任何疑惑可以回复我~
#1

任性未来 提问者

http://img1.sycdn.imooc.com//56641b0e0001203b06070032.jpg 你这个应该也会出错吧,后面应该加括号吧max=(max>muns[i]?:max=unms[i]);
2015-12-06 回复 有任何疑惑可以回复我~
//建议看下三目运算符的用法
//基本格式
//表达式A?表达式B:表达式C
//A为true 则为B,否则为C
min<nums[i]?:min=nums[i];


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么不能用 语句一?语句二:语句三;

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号