蓝橘子园

生活属于我,来去要自如

« 真是粗心大意干掉PGP自解压压缩文档自效应 »

C语言题目-报数游戏

             白天看书的时候遇到这么一个C题目:

             报数游戏。A、B、C、D、E、F、G、H共8人站成一排,按下图所示的方法从1开始报数,问谁最先报到123456?

A        B        C       D       E        F        G        H
1→→2→→3→→4→→5→→6→→7→→8↓
↓←14←←13←12←←11←10←←9←←
15→16→→17→18→→19→20→→21→22↓
↓←28←←27←26←←25←24←←23←←
29→30→……

             想了会,解答方法是想出来了,不过总感觉很复杂,一直在想更简单的方法!
      下面的是我的答案: 

#include"stdio.h"
main()
{
 int a,b,c,d,e,f,g,h,i;
 i=1;
 while(i<=123456)
 {
  a=i++;b=i++;c=i++;d=i++;e=i++;f=i++;g=i++;h=i++;
  if(a==123456){printf("A先报到123456\n");break;}
  else if(b==123456)
  {
   printf("B先报到123456\n");break;
  }
  else if(c==123456)
  {
   printf("C先报到123456\n");break;
  }
  else if(d==123456)
  {
   printf("D先报到123456\n");break;
  }
  else if(e==123456)
  {
   printf("E先报到123456\n");break;
  }
  else if(f==123456)
  {
   printf("F先报到123456\n");break;
  }
  else if(g==123456)
  {
   printf("G先报到123456\n");break;
  }
  else if(h==123456)
  {
   printf("H先报到123456\n");break;
  }
  else
  {
      g=i++;f=i++;e=i++;d=i++;c=i++;b=i++;
      if(g==123456)
      {
       printf("G先报到123456\n");break;
      }
         else if(f==123456)
      {
       printf("F先报到123456\n");break;
      }
         else if(e==123456)
      {
       printf("E先报到123456\n");break;
      }
         else if(d==123456)
      {
       printf("D先报到123456\n");break;
      }
         else if(c==123456)
      {
       printf("C先报到123456\n");break;
      }
         else if(b==123456)
      {
       printf("B先报到123456\n");break;
      }
  }
 }
}

结果是D最先报到123456!  
       

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Spirit Build 80722 Code detection by Codefense  theme by BokeZhuti

Copyright 2007-2009 www.lanjuzi.com. Some Rights Reserved.备案号:湘ICP备08103976号