8000 roulette: 核心算法有待实现 · home-coder/data-abstraction-001@c1f4035 · GitHub
[go: up one dir, main page]

Skip to content

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit c1f4035

Browse files
author
oneface
committed
roulette: 核心算法有待实现
1 parent 54534d8 commit c1f4035

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed

002-roulette.c

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,103 @@
11
#include <stdio.h>
22
#include <stdlib.h>
33

4+
typedef struct _roulette {
5+
char data;
6+
struct _roulette *next;
7+
}roulette;
8+
9+
static void roulette_init(roulette **rte, int people)
10+
{
11+
int i = 0;
12+
roulette *rtep = *rte;
13+
14+
if (rtep != NULL) {
15+
printf("roulette already exsit\n");
16+
return ;
17+
}
18+
19+
while (i < people) {
20+
roulette *nrte = (roulette *)malloc(sizeof(roulette));
21+
if (!nrte) {
22+
printf("nrte malloc failed\n");
23+
return ;
24+
}
25+
nrte->data = 'a' + i++;
26+
27+
if (!rtep) {
28+
rtep = nrte;
29+
rtep->next = rtep;
30+
*rte = rtep;
31+
} else {
32+
nrte->next = rtep->next;
33+
rtep->next = nrte;
34+
rtep = nrte;
35+
}
36+
}
37+
38+
}
39+
40+
static void roulette_show(roulette *rte)
41+
{
42+
roulette *rtep = rte;
43+
if (!rtep) {
44+
printf("roulette is not exsit\n");
45+
return ;
46+
}
47+
48+
do {
49+
printf("%c->", rtep->data);
50+
rtep = rtep->next;
51+
} while(rtep != rte);
52+
53+
printf("\n");
54+
}
55+
56+
static roulette *roulette_play(roulette *rte)
57+
{
58+
int cham, trig;
59+
roulette *rtep = rte;
60+
if (!rtep) {
61+
printf("roulette is not exist\n");
62+
return ;
63+
}
64+
65+
//首先找到首元节点的前趋节点作为计数起始点的前趋
66+
while (rtep->next != rte) {
67+
rtep = rtep->next;
68+
}
69+
70+
do {
71+
printf("please input chamber number & trigger number: ");
72+
scanf("%d %d", &cham, &trig);
73+
for (; i < hit; i++) {
74+
75+
}
76+
} while();
77+
78+
return rtep;
79+
}
80+
481
int main(int argc, char **argv)
582
{
83+
roulette *rte = NULL, *last;
84+
int people;
85+
86+
if (argc < 2) {
87+
fprintf(stderr, "please read usage ./a.out 24\n");
88+
exit(-1);
89+
}
90+
91+
people = atoi(argv[1]);
92+
printf("people %d\n", people);
93+
94+
roulette_init(&rte, people);
95+
roulette_show(rte);
96+
97+
last = roulette_play(rte);
98+
if (last) {
99+
printf("last->data %c\n", last->data);
100+
}
6101

7102
return 0;
8103
}

0 commit comments

Comments
 (0)
0