编辑代码

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

void printBorder(int width) {
	for (int i = 0; i < width; i++) {
		printf("*");
	}
	printf("\n");
}

void printHappyBirthday(const char *name) {
	printf("  Happy Birthday to You!\n");
	printf("  Happy Birthday to You!\n");
	printf("  Happy Birthday Dear %s\n", name);
	printf("  Happy Birthday to You!\n");
}

int main() {
	char name[50] = {'W', 'R', 'S'};
	int nameLength = strlen(name);
	int cardWidth = 30 + nameLength;
	int x, y, w, z;
	srand((unsigned)time(NULL));
	x = rand() % 1000 + 1000  ;
	y = rand() % 100 + 100 ;
	printf("游戏启动\n");
	printf("总数为%d,你与计算机依次选择一个不大于%d的数字,最终使总数为零的一方获胜\n", x, y);

	while (1) {
		printf("请输入你要减去的数字,且不得大于%d\n", y);
		scanf( "%d", &w);

		if ( y < w) {
			printf("请输入小于%d的数\n", y);
			continue;
		} else if (w <= 0) {
			printf("请输入大于0的数\n");
			continue;
		} else {
			printf("你减去%d,后还剩下%d\n", w, x - w);
		}
		x = x - w;
		if (x == 0) {
			printf("   生日快乐\n");
			printBorder(cardWidth);
			printf("\n");

			printf("  Wishing you a day filled with happiness\n");
			printf("  and a year filled with joy. Happy birthday!\n");
			printf("\n");

			printHappyBirthday(name);

			printf("\n");
			printBorder(cardWidth);
			break;
		}
		z = x % (y + 1);
		if (!z)
			z = rand() % 10 + 10 ;
		x = x - z;
		printf("计算机减去%d,还剩下%d\n", z, x);
		if (x == 0) {
			printf("输了欸....\n再来一局吧");
			break;
		}
	}
	return 0;
}