用C语言编写小游戏,求详细代码

、实验题目: 小游戏

二、功能要求:

主函数提供功能菜单供用户选择,用户可以选择调用以下各个功能,也可以选择继续或退出程序。系统应提供以下功能:

(1)免费旅行

一个旅行社要从m个游客中选出一名旅客,为他提供免费旅行服务,选择方法是让m个游客围成一个圆圈,然后从信封中取出一张纸条,用上面写着的正整数n作为报数值,第一个人从1开始一个人一个人按顺时针报数,报到第n个游客时,令其出列。然后再从下一个人开始,从1顺时针报数,报到第n个游客时,再令其出列……,直到圆圈中只剩一个人为止。此人即为优胜者,将获免费旅行服务,例如m=8,n=3,出列的顺序将为3,6,1,5,2,8,4,最初编号为7的游客获得免费旅行服务。可以使用数组来表示和存放每个旅客是否已经出列,1—在圆圈中,0—已经出列。

(2)回文数的形成

任取一个十进制整数,将其倒过来后与原来的整数相加,得到一个新的整数后重复以上步骤,则最终可得到一个回文数。请编程验证。(回文数就是将一个数从左向右读是一样的,如121,11等)。(注:回文数不超过2147483647)

回文数的这一形成规则目前还属于一个猜想,尚未获得数学上的验证,有些回文数要经历上百个步骤才能获得,请编程验证,打印形成过程。如输入整数78时,则输出形成回文数的过程:78+87=165,165+561=726,726+627=1353,1353+3531=4884。

(3)奇异的三位数

一个自然数的七进制数是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,求这个三位数。

输入:两个整数a,b(a<=b)

输出:该区间内所有回文数

#include<stdio.h>
#include<math.h>
int main()
{
    int a,b;
    int i,j,k,n,s,sum;
    int m[9]={0};
   
    scanf("%d%d",&a,&b);
   
 for(i=a;i<=b;i++)
 {
   n=i;k=0;
      while(n>0)
      {
        m[k]=n%10;
        n=n/10;
       k++;
      }
      sum=0;
      //令数字顺序倒置
      for(j=0;j<k;j++)
       {
       s=m[j]*pow(10,k-j-1);
       sum+=s;
         }
       if(sum==i)
       {
         printf("%d\n",i);
       }
   else continue; 
 }  
 return 0;
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632