⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zjx.txt

📁 用C语言编的两个小小程序
💻 TXT
字号:
#include <stdio.h>
unsigned int a[11];
int n;
void init1()
 {int i;
  printf("input n(2--10):");  scanf("%d",&n);
  for (i=1;i<=n;i++)
    {printf("input No.%d Number of stone:\n",i);
     scanf("%d",&a[i]);}
 }
void status()
 {int i;
  printf("Now remainder:\n");
  for (i=1;i<=n;i++)  printf(" No.%d   rem: %u \n",i,a[i]);
 }
unsigned int sum1()
 {unsigned int s; int i;
  s=0;
  for(i=1;i<=n;i++)  s+=a[i];
  return s;
 }
unsigned int xorall()
 {unsigned int s; int i;
  s=0;
  for (i=1;i<=n;i++)  s^=a[i];
  return s;
 }
main()
 {unsigned int t;
  int i,s,e;
  init1();
  while (sum1())
   {if (xorall()==0)
     {for (i=1;i<=n;i++)
	     if(a[i]>0)
	       {printf("computer take 1 from No.%d \n",i);
	        a[i]--; goto loop2;}
           }
        else
          for (i=1;i<=n;i++)
	        { s=a[i]-(xorall()^a[i]) ;
             if (s>0)
	           {printf("computer take %u from No.%d \n",s,i);
	            a[i]^=xorall();
	            goto loop2;}
	        }
      loop2:;
      if(sum1()==0)
        {printf("computer win!"); break;}
      status();
      while (1)
       {printf("Input your selection
             (examp. 1 2  means take 2 from No.1):\n");
         scanf("%d %u",&e,&t);
         if ((e>=1)&&(e<=n)&&(a[e]>=t))
           {a[e]-=t; goto loop1;}
         else
           printf("data error!  re-input...\n");
       }
    loop1:;
    if(sum1()==0)
     {printf("you win!"); break;}
  }
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -