.….颉.... 发表于 2013-11-9 16:13:15

三目运算符的运用

问大家一个问题
这行代码哪里错了啊


(Array>Array) ? { Array^=Array;Array^=Array;Array^=Array; }   :;



☆﹎尐の潴猪 发表于 2013-11-9 16:13:16

#include<stdio.h>
int main()
{
    int j=0;
    int Array={3,2,1};
    (Array>Array) ?goto there : goto here ;
    there:
    { Array^=Array;Array^=Array;Array^=Array; } ;
    here:
    return 0;
}
貌似三木运算符之间不能加入语句块哟!

福禄娃娃 发表于 2013-11-9 17:02:43

楼主你要表达的是这个意思:(Array>Array) ? (Array^=Array):(Array^=Array)

Catol 发表于 2013-11-9 17:37:50

(Array>Array) ? { Array^=Array;Array^=Array;Array^=Array; }   :;

你的冒号后面不能空着的 可以也加个大括号
完整的是
() ? {}:{} ;

Catol 发表于 2013-11-9 17:39:07

(Array>Array) ? { Array^=Array;Array^=Array;Array^=Array; }   :;


你的冒号后面不能空着的 可以也加个大括号
完整的是
() ? {}:{} ;

.….颉.... 发表于 2013-11-9 21:38:56

福禄娃娃 发表于 2013-11-9 17:02 static/image/common/back.gif
楼主你要表达的是这个意思:

不是,本来写的是一个冒泡排序的

#define Increase 0
#define Decreasing 1
#define ArrayOrder Decreasing//只要修改此处即可改变排序的顺序
void BubbleSortArray(int Array[],unsigned int num)
{
        for(int i=0;i<num-1;i++)
        {
                for(int j=0;j<(num-i-1);j++)
                {
                        #if (ArrayOrder==Increase)
                        if        (Array>Array)
                        {Array^=Array;Array^=Array;Array^=Array;}
                        //(Array>Array)?{Array^=Array;Array^=Array;Array^=Array;}:;
                        #else
                        if(Array<Array)
                        {Array^=Array;Array^=Array;Array^=Array;}
                        #endif
                }
        }
}

.….颉.... 发表于 2013-11-9 21:39:50

发现用三木运算符解决这个问题,编译器处理很多错误

.….颉.... 发表于 2013-11-9 21:46:52

Catol 发表于 2013-11-9 17:39 static/image/common/back.gif
(Array>Array) ? { Array^=Array;Array^=Array;Array^=Array; }   :;
...

似乎在这个问题中还是没法解决啊

cainiao367 发表于 2013-11-10 00:43:18

用预编译是个好思路,{:2_33:}

高凯 发表于 2013-11-10 08:42:56

表示没用过

.….颉.... 发表于 2013-11-10 16:50:28

☆﹎尐の潴猪 发表于 2013-11-10 12:07 static/image/common/back.gif
貌似三木运算符之间不能加入语句块哟!

soga(居然少于十个字不能发,但此时我的心情就像这样)
页: [1]
查看完整版本: 三目运算符的运用