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

📄 snscore.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
#ifndef lintstatic char *sccsid = "@(#)snscore.c	4.1	ULTRIX	11/23/87";#endif#include <stdio.h>#include <pwd.h>char *recfile = "/usr/games/lib/snakerawscores";#define MAXPLAYERS 256struct	passwd	*mgetpwuid();char	*malloc();struct	player	{	short	uids;	short	scores;	char	*name;} players[MAXPLAYERS], temp;main(){	char	buf[80], cp;	short	uid, score;	FILE	*fd;	int	noplayers;	int	i, j, notsorted;	short	whoallbest, allbest;	char	*q;	struct	passwd	*p;	fd = fopen(recfile, "r");	if (fd == NULL) {		perror(recfile);		exit(1);	}	printf("Snake players scores to date\n");	fread(&whoallbest, sizeof(short), 1, fd);	fread(&allbest, sizeof(short), 1, fd);	for (uid=2;;uid++) {		if(fread(&score, sizeof(short), 1, fd) == 0)			break;		if (score > 0) {			if (noplayers > MAXPLAYERS) {				printf("too many players\n");				exit(2);			}			players[noplayers].uids = uid;			players[noplayers].scores = score;			/* This is faster if passwd is sorted by uid. */			p = mgetpwuid(uid);			if (p == NULL)				continue;			q = p -> pw_name;			players[noplayers].name = malloc(strlen(q)+1);			strcpy(players[noplayers].name, q);			noplayers++;		}	}	/* bubble sort scores */	for (notsorted=1; notsorted; ) {		notsorted = 0;		for (i=0; i<noplayers-1; i++)			if (players[i].scores < players[i+1].scores) {				temp = players[i];				players[i] = players[i+1];				players[i+1] = temp;				notsorted++;			}	}	j = 1;	for (i=0; i<noplayers; i++) {		printf("%d:\t$%d\t%s\n", j, players[i].scores, players[i].name);		if (players[i].scores > players[i+1].scores)			j = i+2;	}	exit(0);}struct passwd *mgetpwuid(uid)register uid;{	register struct passwd *p;	struct passwd *getpwent();	while( (p = getpwent()) && p->pw_uid != uid );	if (p->pw_uid == uid)		return(p);	setpwent();	while( (p = getpwent()) && p->pw_uid != uid );	endpwent();	return(p);}

⌨️ 快捷键说明

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