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

📄 1830.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 CPP
字号:
/*  This Code is Submitted by wywcgs for Problem 1830 on 2005-10-08 at 23:48:24 */ 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

const char position[] = "SWNE";
const char color[] = "CDSH";
const char value[] = "23456789TJQKA";
const char frame[] = "+---+---+---+---+---+---+---+---+---+---+---+---+---+\n";

typedef struct {
	char value;
	char color;
} Card;

int cmp(const void*, const void*);

int main()
{
	Card card[4][13];
	int n[4], i, j, p, t = 0;
	char line[128], c, seq[64];
	
	while((c = getchar()) != '#') {
		for(p = 0; p < 4; p++) {
			if(c == position[p]) {
				break;
			}
		}
		getchar();
		gets(line);
		gets(seq);
		strcat(line, seq);
		memset(n, 0, sizeof(n));
		for(i = 0; i < 52; i++) {
			p = (p+1) % 4;
			card[p][n[p]].color = line[2*i];
			card[p][n[p]].value = line[2*i+1];
			n[p]++;
		}
		if(t != 0) {
			putchar('\n');
		}
		t++;
		for(i = 0; i < 4; i++) {
			qsort(card[i], 13, sizeof(Card), cmp);
			switch(i) {
			case 0:
				printf("South player:\n");
				break;
			case 1:
				printf("West player:\n");
				break;
			case 2:
				printf("North player:\n");
				break;
			default:
				printf("East player:\n");
				break;
			}
			printf(frame);
			for(j = 0; j < 13; j++) {
				printf("|%c %c", card[i][j].value, card[i][j].value);
			}
			printf("|\n");
			for(j = 0; j < 13; j++) {
				printf("| %c ", card[i][j].color);
			}
			printf("|\n");
			for(j = 0; j < 13; j++) {
				printf("|%c %c", card[i][j].value, card[i][j].value);
			}
			printf("|\n");
			printf(frame);
		}
	}
	
	return 0;
}

int cmp(const void *a, const void *b)
{
	Card *x = (Card*)a, *y = (Card*)b;
	int va, vb, ca, cb, i;
	
	for(i = 0; i < 4; i++) {
		if(x->color == color[i]) {
			ca = i;
		}
		if(y->color == color[i]) {
			cb = i;
		}
	}
	for(i = 0; i < 13; i++) {
		if(x->value == value[i]) {
			va = i;
		}
		if(y->value == value[i]) {
			vb = i;
		}
	}
	if(ca < cb) {
		return -1;
	} else if(ca > cb) {
		return 1;
	} else {
		if(va < vb) {
			return -1;
		} else {
			return 1;
		}
	}
}

⌨️ 快捷键说明

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