大海里的船

在大海上航行的船没有不带伤的。
英国劳埃德保险公司曾从拍卖市场买下一艘船,这艘船1894年下水,在大西洋上曾138次遭遇冰山,116次触礁,13次起火,207次被风暴扭断桅杆,然而它从没有沉没过。
  劳埃德保险公司基于它不可思议的经历及在保费方面给带来的可观收益,最后决定把它从荷兰买回来捐给国家。现在这艘船就停泊在英国萨伦港的国家船舶博物馆里。
  不过,使这艘船名扬天下的却是一名来此观光的律师。当时,他刚打输了一场官司,委托人也于不久前自杀了。尽管这不是他的第一次失败辩护,也不是他遇到的第一例自杀事件,然而,每当遇到这样的事情,他总有一种负罪感。他不知该怎样安慰这些在生意场上遭受了不幸的人。
  当他在萨伦船舶博物馆看到这艘船时,忽然有一种想法,为什么不让他们来参观参观这艘船呢?于是,他就把这艘船的历史抄下来和这艘船的照片一起挂在他的律师事务所里,每当商界的委托人请他辩护,无论输赢,他都建议他们去看看这艘船。
  它使我们知道:在大海上航行的船没有不带伤的。
温馨提示:虽然屡遭挫折,却能够坚强地百折不挠地挺住,这就是成功的秘密。
下面是用C语言实现的约瑟夫双向生死游戏的代码,你可以参考一下: ```c #include <stdio.h> #include <string.h> #define MAX 100 // 定义一个结构体表示旅客 struct passenger { char name[20]; int number; }; int main() { // 初始化输入参数 int p, m, n, q; printf("请输入旅客总人数p、正向报数m、反向报数n、剩余人数q:"); scanf("%d %d %d %d", &p, &m, &n, &q); // 定义旅客数组 struct passenger passengers[MAX]; int i, j; // 初始化旅客 for (i = 0; i < p; i++) { sprintf(passengers[i].name, "passenger%d", i+1); passengers[i].number = i+1; } // 定义出列数组 int out_list[MAX]; memset(out_list, 0, sizeof(out_list)); int out_index = 0; // 开始游戏 int count = 0; int pos = 0; int direction = 1; while (p > q) { count++; if (direction == 1) { if (count == m) { out_list[out_index++] = passengers[pos].number; printf("%s离开了\n", passengers[pos].name); for (j = pos; j < p-1; j++) { passengers[j] = passengers[j+1]; } p--; count = 0; } else { pos++; } if (pos >= p) { pos = 0; } if (p == q) { break; } } else { if (count == n) { out_list[out_index++] = passengers[pos].number; printf("%s离开了\n", passengers[pos].name); for (j = pos; j < p-1; j++) { passengers[j] = passengers[j+1]; } p--; count = 0; } else { pos--; } if (pos < 0) { pos = p-1; } } if (direction == 1 && count == m) { direction = -1; count = 0; } if (direction == -1 && count == n) { direction = 1; count = 0; } } // 输出剩余旅客 printf("剩余的旅客为:\n"); for (i = 0; i < p; i++) { printf("%s\t%d\n", passengers[i].name, passengers[i].number); } // 输出出列的旅客 printf("出列的旅客为:\n"); for (i = 0; i < out_index; i++) { printf("%d\t", out_list[i]); } printf("\n"); return 0; } ``` 在该代码中,我们使用了一个结构体来表示旅客,其中包含旅客的姓名和编号。我们通过循环报数并出列的方式实现了约瑟夫双向生死游戏,并输出了离开和剩余的旅客信息。你可以根据需要进行修改和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值