| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1278 人关注过本帖
标题:急!这题怎么做?
只看楼主 加入收藏
beyond_one
Rank: 4
等 级:业余侠客
帖 子:61
专家分:206
注 册:2009-6-26
收藏
得分:0 
z+=x>y?++x2:++y3

x=1 y=2 z=3

其中++x2和++y3是x的2次方,y的3次方     应该是x2和y3是x的2次方,y的3次方

1.x2是x的2次方 y3是y的3次方  所以x2=1,y3=8   z+=x>y?++x2:++y3
2.++x2和++y3都是先自加1后运算 z+=x>y?2:9
3.x>y不成立  z+=9;
4.z=z+9=3+9=12

[ 本帖最后由 beyond_one 于 2009-9-24 10:38 编辑 ]
2009-09-23 12:41
小栽栽
Rank: 1
等 级:新手上路
帖 子:10
专家分:3
注 册:2009-8-13
收藏
得分:1 
我也觉得是 30吧。。。
2009-09-23 12:45
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:1 
#include "stdio.h"
void main()
{
    int x=1,y=2,z=3;
    z+=x>y?++x*x2:++y*y*y;
    printf("The result is %d.\n",z);
     
     
}
运行结果为30;
#include "stdio.h"
void main()
{
    int m,n,x=1,y=2,z=3;
    m=x*x;
    n=y*y*y;
    z+=x>y?++m:++n;
    printf("The result is %d.\n",z);
     
     
}
运行结果为12.
就没有++x2表示x平方的意思。
2009-09-23 14:30
飞天的猪
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:141
注 册:2009-9-19
收藏
得分:1 
我做的

#include "stdafx.h"
#include "stdio.h"
#include "math.h"
int main(int argc, char* argv[])
{
    int x=1,y=2,z=3;
    double a;
    a=((z+=x)>y?(pow(++x,2.0)):(pow(++y,3.0)));
    printf("%f\n",a);
    return 0;
}

结果是4.0
2009-09-23 15:02
C语言学徒
Rank: 2
来 自:NamKing
等 级:论坛游民
帖 子:51
专家分:22
注 册:2009-2-27
收藏
得分:1 
11楼的兄弟是正解,根据右结合x>y?++1:++8 的值是9  z=12是正解!
2009-09-23 16:04
末末309104535
Rank: 2
来 自:湘 益阳 编成小学
等 级:论坛游民
帖 子:70
专家分:27
注 册:2009-2-17
收藏
得分:0 
   #include<stdio.h>
  main()
 { int x=1,y=2,z=3;
    z+=x>y?x*x:y*y*y;
  printf("%d",z);
   getch();
 }
2009-09-23 16:25
末末309104535
Rank: 2
来 自:湘 益阳 编成小学
等 级:论坛游民
帖 子:70
专家分:27
注 册:2009-2-17
收藏
得分:1 
     #include<stdio.h>
     #include<math.h>
  main()
 { int x=1,y=2,z=3;
    z+=x>y?pow(++x,2):pow(++y,3);
  printf("%d",z);
   getch();
 }
2009-09-23 16:29
yuxiaoxue
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2009-9-23
收藏
得分:1 
#include<stdio.h>  
#include<math.h>  
void main()  
{  
    int x,y,z,a,b,c;  
    x=1;y=2;z=3;  
    b=pow(x,2);c=pow(y,3);  
    a=z+=x>y?++b:++c;  
    printf("a=%d",a);  
    getch();  
}
先得出b的值,为1,再得出c的值,为8,根据运算符的优先性,你可以得知道:先要做x>y?++b:++c;这是条件运算。如果x>y,则为++b,x<=y的话,则为++c;++b或++c是自增的前置运算,见先自增再运算。再做z+=9,得出z等于12,则a=12
2009-09-23 17:49
youyuanjia
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-9-19
收藏
得分:0 
回复 11楼 beyond_one
常量可以自增吗?++1和++8?
2009-09-23 22:59
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:1 
已知int x=1,y=2,z=3;求表达式z+=x>y?++x2:++y3的值?
(其中++x2和++y3是x的2次方,y的3次方)
3楼错了,优先级先算条件运算符,然后算自反赋值运算符。先算x>y?++x2:++y3,逻辑值为假(0),所以取y的3次方,即8,又因为前面有增1运算符,而且是前缀,所以运算再使用。所以此处就为9了。然后算自反赋值运算符,即为z+=9,结果就是12咯。
看一下,肯定是对的。
不喜欢向人讨分,但我也有好多问题要问人,so:
给点分吧!哈哈

我可好玩啦...不信你玩玩^_^
2009-09-24 00:29
快速回复:急!这题怎么做?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017938 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved