📄 josephus.c
字号:
#include <stdio.h>
#include "opreations.h"
int main()
{
Sqlist L[ MAX_LISTS ];
char choice; // 记录选择的操作
int sum_lists=0;
printf ( "\n请先创建一个顺序表。最多可以创建 %u 个顺序表。\n", MAX_LISTS );
while ( choice = menu() ) // 根据输入选择函数运行
{
switch ( choice )
{
case 1 :{
int mun=sum_lists;
init_list(&L[mun]);
printf("\n请为该顺序表添加元素:\n");
printf("输入 存储\n");
input_elem(&L[mun]);
sum_lists++;
break;
}
case 2 :{
int mun,i,m;
printf("\n请选择你要操作的顺序表: ");
scanf("%d",&mun);
printf("\n请选择你插入位置: ");
scanf("%d",&i);
printf("\n每次一个数据请输入插入的数据: ");
scanf("%d",&m);
insert_elem(&L[mun-1],i,m);
break;
}
case 3 :{
int mun,i;
ElemType e=1;
printf("\n请选择你要操作的顺序表: ");
scanf("%d",&mun);
printf("\n每次只能删除一个数据,请输入删除数据的位置: ");
scanf("%d",&i);
delete_elem(&L[mun-1],i,e);
break;
}
case 4 :{
int mun;
AAA: printf("\n请选择你要操作的顺序表: ");
scanf("%d",&mun);
if (mun>sum_lists)
{
puts("******请输入一个有效数字******");
goto AAA;
}
if (mun=sum_lists)
{
sum_lists--;
}
else if (mun<sum_lists)
{
int i;
for(i=mun-1;i<sum_lists-1;i++)
{
fuzhi(&L[i],&L[i+1]);
}
sum_lists--;
}
break;
}
case 5 :{
Sqlist A;
int mun,i,n,j,ch;
init_list(&A);
printf("\n请选择你要操作的顺序表: ");
scanf("%d",&mun);
i=L[mun-1].length;
fuzhi(&A,&L[mun-1]);
printf( "\n原表为:");
for ( j = 0; j < i; j++ )
printf( "%d ",A.data[j]);
printf("\n输入你出列的数字:");
scanf("%d",&ch);
n=ch;
josephus(&A,i,n);
break;
}
default: break;
}
output_list(L,sum_lists);
}
puts("\n感谢老师的指点!请按回车退出...");
getchar();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -