c语言作业 出圈游戏.docx
- 文档编号:8382185
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:9
- 大小:15.94KB
c语言作业 出圈游戏.docx
《c语言作业 出圈游戏.docx》由会员分享,可在线阅读,更多相关《c语言作业 出圈游戏.docx(9页珍藏版)》请在冰豆网上搜索。
c语言作业出圈游戏
#include
#include
#include
#defineSIZE100
structSeqList{
intnum;
charname[10];
};
intmenu_select();//函数声明部分
voidJoseph1();
voidJoseph2();
voidJoseph3();
voidJoseph4();
voidJoseph(structSeqList*p,intlength);
voidmain()//主要程序段
{
printf("╭───────────────────────╮\n");
printf("║出圈游戏!
!
║\n");
printf("╰───────────────────────╯\n");
for(;;){
switch(menu_select()){//菜单的选择
case1:
printf("假设有人数为n个人的一个小组,他们按顺时针方向围坐一圈。
\n一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向从1开始顺序报数,报到m时停止报数。
\n报数m的人出列,然后从他原来所在的顺时针方向的下一个人开始重新从1报数,报到m时停止报数,并出列。
\n如此下去,直至所有人全部出列为止。
\n要求按他们出列的顺序输出他们原来的代号。
\n");
break;
case2:
Joseph1();
break;
case3:
Joseph2();
break;
case4:
Joseph3();
break;
case5:
Joseph4();
break;
case6:
printf("╭───────╮\n");//小组的成员名单
printf("║小组成员列表:
║\n");
printf("║方勇徐灵琳║\n");
printf("║赵雄彬应邦诺║\n");
printf("║叶兰鸿彭黎明║\n");
printf("╰───────╯\n");
printf("谢谢使用!
O(∩_∩)O~~\n");
exit(0);//退出该程序
}
system("pause");
system("cls");
}
}
intmenu_select()//菜单函数
{
intcn;
printf("出圈游戏菜单目录:
\n");//菜单列表
printf("╭───────────╮\n");
printf("║1.出圈游戏题目║\n");
printf("║2.第一种方法║\n");
printf("║3.第二种方法║\n");
printf("║4.第三种方法║\n");
printf("║5.第四种方法║\n");
printf("║6.退出║\n");
printf("╰───────────╯\n");
printf("输入1-6之间的数字\n");
while
(1)//无限次循环
{
scanf("%d",&cn);
if(cn>0||cn<7)//要求输入数字为1-9之间
{
returncn;
break;//输入正确跳出循环
}
else
{printf("输入错误!
!
请重新输入!
");
continue;}//输入错误,退出本次循环,重新输入
}
}
voidJoseph1()
{
intnum[SIZE];
inti=0,m=0,j=0,k=0,n;
printf("请输入参加游戏的人数:
");
scanf("%d",&n);
for(i=0;i { num[i]=i+1; } printf("请输入间隔数: "); scanf("%d",&m); printf("出圈的顺序如下: \n"); i=-1; for(k=1;k<=n;k++) { j=0; while(j { i++; if(i==n) i=0; if(num[i]! =0) j++; } printf("%d",num[i]); printf(""); num[i]=0; } printf("\n"); } voidJoseph2() { charnum[SIZE][SIZE]; inti=0,n,m=0,j=0,k=0; intlength=0; chars[SIZE]; printf("请输入参加游戏的人数: \n"); scanf("%d",&n); printf("请输入间隔数: \n"); scanf("%d",&m); printf("请输入游戏者名字: \n"); getchar(); for(i=0;i { printf("第%d个人的名字: ",i+1); gets(s); strcpy(num[i],s); } printf("出圈的顺序如下: \n"); i=-1; for(k=1;k<=n;k++) { j=0; while(j { i++; if(i==n) i=0; if(num[i][0]! ='0') j++; } printf("%s",num[i]); printf(""); num[i][0]='0'; } printf("\n"); } voidJoseph3() { inti=0,m=0,j=0,k=0; int*p; intlength=0; printf("请输入准备参加游戏的人数: "); scanf("%d",&length); p=(int*)malloc(length*sizeof(int)); if(p==NULL) { printf("内存分配错误"); exit (1); } for(i=0;i { *(p+i)=i+1; } printf("请输入间隔数: "); scanf("%d",&m); printf("出圈的顺序如下: \n"); i=-1; for(k=1;k<=length;k++) { j=0; while(j { i++; if(i==length) i=0; if(*(p+i)! =0) j++; } if(k==length) break; printf("%d",*(p+i)); printf(","); *(p+i)=0; } printf("%d",*(p+i)); printf("\n"); free(p); } voidJoseph4() { structSeqList*p; intlength=0; printf("请输入准备参加游戏的人数: "); scanf("%d",&length); p=(structSeqList*)malloc(length*sizeof(structSeqList)); if(p==NULL) { printf("内存分配错误"); exit (1); } Joseph(p,length); } voidJoseph(structSeqList*p,intlength) { intm; intj,k; chars[10]; inti; printf("请输入间隔数m(m<=20): "); scanf("%d",&m); while(m>20) { printf("太大,请重新指定间隔数m(m<=20)"); scanf("%d",&m); } printf("请输入游戏者名字: \n"); getchar(); for(i=0;i { printf("第%d个人的名字: ",i+1); gets(s); strcpy((p+i)->name,s); (p+i)->num=i+1; } printf("出圈的顺序如下: "); i=-1; for(k=1;k<=length;k++) { j=0; while(j { i++; if(i==length) i=0; if((p+i)->num! =0) j++; } if(k==length) break; printf("%s",(p+i)->name); printf(","); (p+i)->num=0; } printf("%s",(p+i)->name); printf("\n"); free(p); } 海藻肥TWfZZvj8Y33n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言作业 出圈游戏 语言 作业 出圈 游戏