这个用数据结构的方法怎么写?

来源:百度知道 编辑:UC知道 时间:2024/05/22 12:21:07
纸牌游戏
任务:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的直到 以52为基数的 翻过,输出:这时正面向上的牌有哪些?
提示:可以用单循环链表实现,每张扑克存放在一个结点中,结点中可以设置一个域,用来表示扑克的正反面(如1-正面,0-反面)。

2.课程设计要求
要求设计过程要符合软件设计规范,要分析清楚各基本运算模块与其他模块之间的耦合联系,给出较为详细的分片设计分析过程,设计程序要具有良好的可读性、能够实现数据处理基本功能。

struct card
int mindex;
bool bState;//TRUE表示正面,FALSE表示反面
int counter=1;
card myCard[52];
for(int i =0;i<52;i++)
myCard[i].mindex = i+1;
myCard[i].bState = TRUE;
//挑选符合条件的牌
while(counter <= 52)
if(counter == 1)
counter += 1;
for(int i = counter;i< 52;i++)
if(myCard[i].mindex % counter == 0)
myCard[i].bState = FALSE;
counter ++;
//检索这副牌,看看哪些是TRUE,即没有翻过去的牌,正面向上的牌
for(int i =0;i < 52;i++)
if(myCard[i].bState)
cout << myCard[i].mindex<function();
}

#include <stdio.h>
#include <conio.h>

#define CARDAMT 52

int cards[CARDAMT+1]; /*cards[0]没有用*/

void showResult() {
int i, counter;
for( counter=1; counter<=10; ++counter )
printf("%d ", counter);
printf("\n");