通达信 指标 多个条件排列组合输出不同结果应该怎么编

通达信 指标 多个条件排列组合输出不同结果应该怎么编就是有条件a,条件b......条件n,当条件a成立输出结果a,条件b成立输出结果b......条件n成立输出结果n;当条件a,b同时成立输出结果a,b。当条件a,b,c同时成立输出结果a,b,c。
这些条件任意排列组合,输出对应的结果

算法描述:

    å‡è®¾æœ‰n个条件,定义一个长度为n的数组存储n个条件的逻辑值。使用循环逐个判断条件,将各个条件的逻辑结果存储在对应的数组元素中。扫描数组,根据数组下标输出对应的结果。


C语言程序:

#include <stdio.h>
#include <stdlib.h>
#include <time.h> 

#define N 10

void main()
{
int condictions[N]; //模拟N个条件
int results[N]; //存储N个条件的逻辑值,1:成立,0:不成立
int i;

//初始化随机数产生器
srand((unsigned)time(NULL)); 

for(i=0; i<N; i++)
{
//获得一个随机数
condictions[i] = rand();
//随机数不小于16383即表示条件成立,否则表示条件不成立
results[i] = (condictions[i] >= 16383 ? 1 : 0);
}

printf("输出结果列表:");
for(i=0; i<N; i++)
{
if(results[i] == 1)
{
printf("%c ", 'a' + i);
}
}
printf("\n");
}


运行测试1:

输出结果列表:b d e f h j


运行测试2:

输出结果列表:f g i


运行测试3:

输出结果列表:b c d g h i
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-06-09
AB的条件我随意设置的。
A:=BARSLASTCOUNT(C>MA(C,20))>5;
B:=BARSLASTCOUNT(C>MA(C,60))>5;
IF(A>0,A,0);
IF(B>0,B,0);
AB:A+B;
IF(A>0 AND B>0,AB,0);
相似回答