飘云 发表于 2004-12-14 10:45:44

一个典型的遍历问题。

一个典型的遍历问题。
发信人: elliott_lao(天马)
整理人: wenbobo(2002-06-11 19:08:06), 站内信件
请回答下面10个问题:
 1、第一个答案是b的问题是哪一个?
  (a)2;(b) 3;(c)4;(d)5;(e)6
 2、唯一的连续两个具有相同答案的问题是:
  (a)2,3;(b)3,4;(c)4,5;(d)5,6;(e)6,7;
3、本问题答案和哪一个问题的答案相同?
  (a)1;(b)2;(c)4;(d)7;(e)6
 4、答案是a的问题的个数是:
  (a)0;(b)1;(c)2;(d)3;(e)4
5、本问题答案和哪一个问题的答案相同?
  (a)10;(b)9;(c)8;(d)7;(e)6
 6、答案是a的问题的个数和答案是什么的问题的个数相同?
  (a)b;(b)c;(c)d;(d)e;(e)以上都不是
 7、按照字母顺序,本问题的答案和下一个问题的答案相差几个字母?
  (a)4;(b)3;(c)2;(d)1;(e)0。(注:a和b相差一个字母)
8、答案是元音字母的问题的个数是:
  (a)2;(b)3;(c)4;(d)5;(e)6。(注:a和e是元音字母)
 9、答案是辅音字母的问题的个数是:
  (a)一个质数;(b)一个阶乘数;(c)一个平方数;(d)一个立方数,(e)5的倍数
 10、本问题的答案是:
  (a)a;(b)b;(c)c;(d)d;(e)e。
答案:cdebeedcba
程序如下:
struct answer
{
int a;
int b;
} ans;

/*原型定义*/
void init_ans(); /*初始化ans*/
void cal_ans(); /*统计ans结果*/
int j1(); /*判断并加1*/

int d1(); /*判断条件1成立否*/
int d2();
int d3();
int d4();
int d5();
int d6();
int d7();
int d8();
int d9();

int main()
{
int t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;/*判断数组*/
init_ans();
cal_ans();

do
    {
   /*初始化判断数组*/
   t1 = 1;
   t2 = 1;
   t3 = 1;
   t4 = 1;
   t5 = 1;
   t6 = 1;
   t7 = 1;
   t8 = 1;
   t9 = 1;
   t10 = 1;

   t1 = d1();
   if (t1 == 0)
      {
         continue;
      }
   t2 = d2();
   if (t2 == 0)
      {
         continue;
      }
   t3 = d3();
   if (t3 == 0)
      {
         continue;
      }
   t4 = d4();
   if (t4 == 0)
      {
         continue;
      }
   t5 = d5();
   if (t5 == 0)
      {
         continue;
      }
   t6 = d6();
   if (t6 == 0)
      {
         continue;
      }
   t7 = d7();
   if (t7 == 0)
      {
         continue;
      }
   t8 = d8();
   if (t8 == 0)
      {
         continue;
      }
   t9 = d9();
   if (t9 == 0)
      {
         continue;
      }
   printf("结果是%d %d %d %d %d %d %d %d %d %d。\n",ans.a,ans.a,ans.a,ans.a,ans.a,ans.a,ans.a,ans.a,ans.a,ans.a);
    }
while(j1());
}

void init_ans()   /*初始化ans组*/
{
ans.a = 1;
ans.a = 1;
ans.a = 1;
ans.a = 1;
ans.a = 1;
ans.a = 1;
ans.a = 1;
ans.a = 1;
ans.a = 1;
ans.a = 1;
ans.a = 1;
}

void cal_ans()   /*统计答案结果*/
{
int i;
ans.b = 0;
ans.b = 0;
ans.b = 0;
ans.b = 0;
ans.b = 0;

for(i=1;i<=10;i++)
{
if(ans.a == 1)
{
ans.b = ans.b + 1;
continue;
}
if(ans.a == 2)
{
ans.b = ans.b + 1;
continue;
}
if(ans.a == 3)
{
ans.b = ans.b + 1;
continue;
}
if(ans.a == 4)
{
ans.b = ans.b + 1;
continue;
}
if(ans.a == 5)
{
ans.b = ans.b + 1;
}
}
}

int j1()
{
if(ans.a == 5 && ans.a == 5 && ans.a == 5 && ans.a == 5 && ans.a == 5 && ans.a == 5 && ans.a == 5 && ans.a == 5 && ans.a == 5 && ans.a == 5)
{
return 0;
}
else
{
ans.a = ans.a + 1;
if(ans.a == 6)
{
ans.a = 1;
ans.a = ans.a + 1;
if(ans.a == 6)
{
ans.a = 1;
ans.a = ans.a + 1;
if(ans.a == 6)
{
ans.a = 1;
ans.a = ans.a + 1;
if(ans.a == 6)
{
ans.a = 1;
ans.a = ans.a + 1;
if(ans.a == 6)
{
ans.a = 1;
ans.a = ans.a + 1;
if(ans.a == 6)
{
ans.a = 1;
ans.a = ans.a + 1;
if(ans.a == 6)
{
ans.a = 1;
ans.a = ans.a + 1;
if(ans.a == 6)
{
ans.a = 1;
ans.a = ans.a + 1;
if(ans.a == 6)
{
ans.a = 1;
ans.a = ans.a + 1;
}
}
}
}
}
}
}
}
}
}
cal_ans();/*统计结果数*/
return 1;
}

int d1()
{
int n_b;
int i;

n_b = 11;
for(i=1;i<=10;i++)
{
if(ans.a == 2)
{
n_b = i;
break;
}
}
if(ans.a == 1 && n_b == 2)
{
return 1;
}
if(ans.a == 2 && n_b == 3)
{
return 1;
}
if(ans.a == 3 && n_b == 4)
{
return 1;
}
if(ans.a == 4 && n_b == 5)
{
return 1;
}
if(ans.a == 5 && n_b == 6)
{
return 1;
}
return 0;
}

int d2()
{
int n_b1;
int n_b2;
int i;
int j;

for(i=1;i<10;i++)
{
n_b1 = 11;
n_b2 = 11;
for(j=i+1;j<10;j++)
{
if(ans.a == ans.a)
{
n_b2 = j;
break;
}
}
if(ans.a == ans.a && n_b2 == 11)
{
n_b1 = i;
break;
}
}
if(ans.a == 1 && n_b1 == 2)
{
return 1;
}
if(ans.a == 2 && n_b1 == 3)
{
return 1;
}
if(ans.a == 3 && n_b1 == 4)
{
return 1;
}
if(ans.a == 4 && n_b1 == 5)
{
return 1;
}
if(ans.a == 5 && n_b1 == 6)
{
return 1;
}
return 0;
}

int d3()
{
if(ans.a == 1 && ans.a == ans.a)
{
return 1;
}
if(ans.a == 2 && ans.a == ans.a)
{
return 1;
}
if(ans.a == 3 && ans.a == ans.a)
{
return 1;
}
if(ans.a == 4 && ans.a == ans.a)
{
return 1;
}
if(ans.a == 5 && ans.a == ans.a)
{
return 1;
}
return 0;
}

int d4()
{
if(ans.a == 1 && ans.b == 0)
{
return 1;
}
if(ans.a == 2 && ans.b == 1)
{
return 1;
}
if(ans.a == 3 && ans.b == 2)
{
return 1;
}
if(ans.a == 4 && ans.b == 3)
{
return 1;
}
if(ans.a == 5 && ans.b == 4)
{
return 1;
}
return 0;
}

int d5()
{
if(ans.a == 1 && ans.a == ans.a)
{
return 1;
}
if(ans.a == 2 && ans.a == ans.a)
{
return 1;
}
if(ans.a == 3 && ans.a == ans.a)
{
return 1;
}
if(ans.a == 4 && ans.a == ans.a)
{
return 1;
}
if(ans.a == 5 && ans.a == ans.a)
{
return 1;
}
return 0;
}

int d6()
{
if(ans.a == 1 && ans.b == ans.b)
{
return 1;
}
if(ans.a == 2 && ans.b == ans.b)
{
return 1;
}
if(ans.a == 3 && ans.b == ans.b)
{
return 1;
}
if(ans.a == 4 && ans.b == ans.b)
{
return 1;
}
if(ans.a == 5 && ans.b != ans.b && ans.b != ans.b && ans.b != ans.b && ans.b != ans.b)
{
return 1;
}
return 0;
}

int d7()
{
if(ans.a == 1 && (ans.a - ans.a == 4))
{
return 1;
}
if(ans.a == 2 && (ans.a - ans.a == 3))
{
return 1;
}
if(ans.a == 3 && (ans.a - ans.a == 2 || ans.a - ans.a == 2))
{
return 1;
}
if(ans.a == 4 && (ans.a - ans.a == 1 || ans.a - ans.a == 1))
{
return 1;
}
if(ans.a == 5 && (ans.a - ans.a == 0))
{
return 1;
}
return 0;
}

int d8()
{
if(ans.a == 1 && ans.b + ans.b == 2)
{
return 1;
}
if(ans.a == 2 && ans.b + ans.b == 3)
{
return 1;
}
if(ans.a == 3 && ans.b + ans.b == 4)
{
return 1;
}
if(ans.a == 4 && ans.b + ans.b == 5)
{
return 1;
}
if(ans.a == 5 && ans.b + ans.b == 6)
{
return 1;
}
return 0;
}

int d9()
{
if(ans.a == 1 && (ans.b + ans.b + ans.b == 5 || ans.b + ans.b + ans.b == 7))
{
return 1;
}
if(ans.a == 2 && (ans.b + ans.b + ans.b == 6))
{
return 1;
}
if(ans.a == 3 && (ans.b + ans.b + ans.b == 4))
{
return 1;
}
if(ans.a == 4 && (ans.b + ans.b + ans.b == 8))
{
return 1;
}
if(ans.a == 5 && (ans.b + ans.b + ans.b == 5))
{
return 1;
}
return 0;
}

----
-世上是先有鸡,还是先有蛋- Elliott lao

chp1 发表于 2006-9-9 08:55:32

谢谢.好文

eopenfang 发表于 2006-9-9 08:59:31

不错

强烈要求学习!

yitaowu 发表于 2006-9-9 09:37:28

恩,我先收下来,再好好看看,谢谢了~~~~~~
页: [1]
查看完整版本: 一个典型的遍历问题。