⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 对52张扑克牌以一个基数进行翻转后,最后显示的正面和返回扑克的算法,可以动态输入,并显示结果.
💻 CPP
字号:
#include <iostream> 
#include "List.h"
using namespace std; 

const int max=53;
int card[max]; 
void start(int n);
void pass(int n);
void showAll();
void showBase();
List<int> baseface[max];  //全局变量,记录基数的正面链表
List<int> basecon[max];   //全局变量,记录基数的反面链表

int main() 
{
	int i; 
	for(i=0; i<max; i++) 
		card[i]=1;          //1表示牌子的正面
	for(i=2; i<max; i++) 
		start(i);
	char choose;
	while(true) {
	do {
		cout<<"1.输入基数进行查找"<<endl;
		cout<<"2.显示最后结果"<<endl;
		cin>>choose;
	}while(choose<'1'||choose>'2');
	
		switch(choose) {
		case '1': showBase();break;
		case '2': showAll(); break;
		}
	}
	return 0; 
} 

void start(int n) { 
	for(int i=n;i<max;i++) { 
		if(i%n==0) 
			card[i]=!card[i]; 
	} 
	pass(n);
} 

void pass(int n) {
	List<int>face;
	List<int>con;
	for(int i=1;i<max;i++) {
		if(card[i]) {
			face.insert(0,i);
		}
		
	}	
	for(i=1;i<max;i++) {
		if(!card[i]) {
			con.insert(0,i);			
		}
		
	}
	baseface[n]=face;
	basecon[n]=con;
} 
void showAll() {
	cout<<endl<<"最后的正面向上的为;";
	for(int i=1; i<max; i++) { 
		if(card[i]) 
			cout<<i<<" "; 
	} 
	cout<<endl; 
}
void showBase() {
	int base=0;
	int i=0,temp;
	int count=0;
	List<int>templist;
	do {
		cout<<"请输入基数(2-52):";
		cin>>base;
	}while(base<2||base>52);
	cout<<endl<<"以"<<base<<"为基数时:"<<endl;
	cout<<"正面向上的为:";
	templist=baseface[base];
	for(i=templist.size()-1;i>=0;i--) {
		templist.retrieve(i,temp);
		count++;
		cout<<temp<<" ";
		if(count%20==0) cout<<endl;
	}
	count=0;
	cout<<endl<<"反面向上的为:";
	templist=basecon[base];
	for(i=templist.size()-1;i>=0;i--) {
		templist.retrieve(i, temp);
		count++;
		cout<<temp<<" ";
		if(count%20==0) cout<<endl;
	}
	cout<<endl;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -