三目运算符的运用
问大家一个问题这行代码哪里错了啊
(Array>Array) ? { Array^=Array;Array^=Array;Array^=Array; } :;
#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;
}
貌似三木运算符之间不能加入语句块哟! 楼主你要表达的是这个意思:(Array>Array) ? (Array^=Array):(Array^=Array) (Array>Array) ? { Array^=Array;Array^=Array;Array^=Array; } :;
你的冒号后面不能空着的 可以也加个大括号
完整的是
() ? {}:{} ; (Array>Array) ? { Array^=Array;Array^=Array;Array^=Array; } :;
你的冒号后面不能空着的 可以也加个大括号
完整的是
() ? {}:{} ; 福禄娃娃 发表于 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
}
}
}
发现用三木运算符解决这个问题,编译器处理很多错误
Catol 发表于 2013-11-9 17:39 static/image/common/back.gif
(Array>Array) ? { Array^=Array;Array^=Array;Array^=Array; } :;
...
似乎在这个问题中还是没法解决啊 用预编译是个好思路,{:2_33:} 表示没用过 ☆﹎尐の潴猪 发表于 2013-11-10 12:07 static/image/common/back.gif
貌似三木运算符之间不能加入语句块哟!
soga(居然少于十个字不能发,但此时我的心情就像这样)
页:
[1]