user-0 提问: 求参数的问题请高手指点

回复:
user: user-1
content: 给楼上赞~~~

user: user-2
content: 两种笨办法,效率很差的: int check(int a[4]) {       int i,j;       for(i=0;i<4;i++)              if(a[i] ==93)break;       if(i==4)return 0;         for(j= i;j<4+i;j++)       {            if(a[j %4] != 145)break;        }        if(j - i ==3)return 1;        return 0; }  int check_around(int  a,int b,int c,int d) {        int t;       for(int i=0;i<4;i++)       {             if(a==93){               if(b==145 && c ==145 && d==145)return 1;             }              t=a';             a=b;             b=c;             c=d;             d=t;       }        return 0; }

user: user-3
content: 不要轻易地拒绝哪怕只是看上去美的事物。

user: user-3
content: 引用 16 楼 u013656585 的回复:[quote=引用 14 楼 zhao4zhong1 的回复:] [quote=引用 13 楼 u013656585 的回复:] 难道不是	if ((a==93 && b==145 && c==145 && d==145) 			|| (a==145 && b==93 && c==145 && d==145) 			|| (a==145 && b==145 && c==93 && d==145) 			|| (a==145 && b==145 && c==145 && d==93)) 	{ 		//your expressions 	}么？？ http://bbs.csdn.net/topics/380157851 if ((a== 93 && b==145 && c==145 && d==145)  || (a==145 && b== 93 && c==145 && d==145)  || (a==145 && b==145 && c== 93 && d==145)  || (a==145 && b==145 && c==145 && d== 93)) {     //your expressions }[/quote]我去，你这是吹毛求疵么？风格对齐风格对齐，我还不知道风格对齐，微软的源代码里各种风格，慢慢学，不用刻意去钻研。。。[/quote] 不要轻易地拒绝美的事物。

user: user-3
content: 引用 15 楼 xxsnihao 的回复:非常感谢 这个方法很简便 我很想知道 按照2楼的那个来写为什么不对呢 是哪里错了 赵老师能指点下吗 参考14楼。 Don‘t make me think! http://www.baidu.com/s?tn=92317190_hao_pg&ie=utf-8&bs=Don%E2%80%98t+let+me+think%21&f=8&rsv_bp=1&rsv_spt=3&wd=Don%E2%80%98t+make+me+think%21&inputT=3969

user: user-4
content: 引用 14 楼 zhao4zhong1 的回复:[quote=引用 13 楼 u013656585 的回复:] 难道不是	if ((a==93 && b==145 && c==145 && d==145) 			|| (a==145 && b==93 && c==145 && d==145) 			|| (a==145 && b==145 && c==93 && d==145) 			|| (a==145 && b==145 && c==145 && d==93)) 	{ 		//your expressions 	}么？？ http://bbs.csdn.net/topics/380157851 if ((a== 93 && b==145 && c==145 && d==145)  || (a==145 && b== 93 && c==145 && d==145)  || (a==145 && b==145 && c== 93 && d==145)  || (a==145 && b==145 && c==145 && d== 93)) {     //your expressions }[/quote]我去，你这是吹毛求疵么？风格对齐风格对齐，我还不知道风格对齐，微软的源代码里各种风格，慢慢学，不用刻意去钻研。。。

user: user-0
content: 非常感谢 这个方法很简便 我很想知道 按照2楼的那个来写为什么不对呢 是哪里错了 赵老师能指点下吗

user: user-3
content: 引用 13 楼 u013656585 的回复:难道不是	if ((a==93 && b==145 && c==145 && d==145) 			|| (a==145 && b==93 && c==145 && d==145) 			|| (a==145 && b==145 && c==93 && d==145) 			|| (a==145 && b==145 && c==145 && d==93)) 	{ 		//your expressions 	}么？？ http://bbs.csdn.net/topics/380157851 if ((a== 93 && b==145 && c==145 && d==145)  || (a==145 && b== 93 && c==145 && d==145)  || (a==145 && b==145 && c== 93 && d==145)  || (a==145 && b==145 && c==145 && d== 93)) {     //your expressions }

user: user-4
content: 难道不是	if ((a==93 && b==145 && c==145 && d==145) 			|| (a==145 && b==93 && c==145 && d==145) 			|| (a==145 && b==145 && c==93 && d==145) 			|| (a==145 && b==145 && c==145 && d==93)) 	{ 		//your expressions 	}么？？

user: user-5
content: 计数器啊  #include <assert.h> #include <stdio.h> #include <stdlib.h> #include <time.h>  int foo(int a, int b, int c, int d) {     int r;     int n[200 + 1] = {0};      assert(a >= 1 && a <= 200);     assert(b >= 1 && b <= 200);     assert(c >= 1 && c <= 200);     assert(d >= 1 && d <= 200);      ++n[a];     ++n[b];     ++n[c];     ++n[d];      if (n[93] == 1 && n[145] == 3)         r = 1;     else         r = 0;      return r; }  int main(int argc, char *argv[]) {     int i;     int r;     int a, b, c, d;      srand(time(NULL));      for (i = 0; i < 100000; ++i) {         a = 145;         b = rand() % 200 + 1;         c = rand() % 200 + 1;         d = 145;         r = foo(a, b, c, d);         if (r)             printf("a=%03d b=%03d c=%03d d=%03d r=%d\n", a, b, c, d, r);     }      return 0; }  可能的输出结果 a=145 b=145 c=093 d=145 r=1 a=145 b=093 c=145 d=145 r=1 a=145 b=145 c=093 d=145 r=1 a=145 b=093 c=145 d=145 r=1 a=145 b=145 c=093 d=145 r=1

user: user-0
content: int A = pMapItem->tMagic[0];                     int B = pMapItem->tMagic[1];                     int C = pMapItem->tMagic[2];                     int D = pMapItem->tMagic[3]; ABCD的变量必须等于这几个才能有效果 在线等高手回答 谢谢了

user: user-0
content: 我的目的就是 A B C D 只要出现  例1 A=93 B=145 C=145 D=145    例2 A=145 B=93 C=145 D=145  例3 A=145 B=145 C=93 D=145  例4 A=145 B=145 C=145 D=93 jipingshuxing 就等于1 但是 测试了 不成功啊 到底是什么情况。。。。

user: user-0
content: 我按照 lovesmiles  的想法来写为什么 这样写 不对呢 static int nSHUXING[205]={0}; 					int A = pMapItem->tMagic[0]; 					int B = pMapItem->tMagic[1]; 					int C = pMapItem->tMagic[2]; 					int D = pMapItem->tMagic[3]; 					nSHUXING[93] = 10; 					nSHUXING[145] = 1; 					if(nSHUXING[A] + nSHUXING[B] + nSHUXING[C] + nSHUXING[D] == 13) 					{ 						jipingshuxing = 1; 					}

user: user-6
content: 引用 5 楼 lovesmiles 的回复:[quote=引用 4 楼 zxh707wk 的回复:] 加判断之后 int check_num(int a,int b,int c,int d) { 	if(a!=93&&b!=93&&c!=93&&d!=93)retunr 0; 	if(a!=145&&b!=145&&c!=145&&d!=145)retunr 0; 	if(a+b+c+d==93+145*3)return 1; 	return 0; }  哈哈，你这个根本不行，我举个例子 93，144，146，145[/quote]好吧，失策了

user: user-6
content: 改好啦 int check_num(int a,int b,int c,int d) { 	int num[4]={a,b,c,d}; 	int num_93=0; 	int num_145=0; 	int i; 	for(i=0;i<4;i++) 	{ 		if(num[i]==93)num_93++; 		if(num[i]==145)num_145++; 	} 	if(num_93==1&&num_145==3)return 1; 	return 0; }

user: user-0
content: 非常感谢大家的热心帮助 已经弄明白了

user: user-7
content: 引用 4 楼 zxh707wk 的回复:加判断之后 int check_num(int a,int b,int c,int d) { 	if(a!=93&&b!=93&&c!=93&&d!=93)retunr 0; 	if(a!=145&&b!=145&&c!=145&&d!=145)retunr 0; 	if(a+b+c+d==93+145*3)return 1; 	return 0; }  哈哈，你这个根本不行，我举个例子 93，144，146，145

user: user-6
content: 加判断之后 int check_num(int a,int b,int c,int d) { 	if(a!=93&&b!=93&&c!=93&&d!=93)retunr 0; 	if(a!=145&&b!=145&&c!=145&&d!=145)retunr 0; 	if(a+b+c+d==93+145*3)return 1; 	return 0; }

user: user-7
content: 哥再写个用map的给你，省去各种各样的abcd检测 bool func(int a,int b,int c,int d) { map<int,int> temp; temp[93]=10; temp[145]=1; if(temp[a]+temp[b]+temp[c]+temp[d]==13) return true; else return false; }

user: user-6
content: 仅供参考 int check_num(int a,int b,int c,int d) { 	//自己加个检测条件 	if(a+b+c+d==93+145*3)return 1; 	return 0; }