#99 Article 1060 Posted at 1995/12/21 02:42:29 by MSP-Iris (MAP4370) [SAHOU.4]
Subject: Re: プログラミング作法・お題4 /1052
先のソートルーチンを利用して...(^^;
同着判定をして、それを並べて置いてあるので、あとは数えるだけ。
-----------------------------
Art.1046 の ASM ルーチンをリンクして下さい(_SORTIT)。
-----------------------------
Art.1049 の ASM ルーチンをリンクして下さい(_SORTIU)。
-----------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
extern void SORTIT (char *,char *,int,int);
extern void SORTIU (char *,char *,int);
void errend (s) char *s; {
printf("%s\n",s);
abort();
}
main () {
static char mjstr[64][32]; static unsigned char rank[64],queue[64];
int i,j; char tmp[32];
i=1;
while(i<=63&(fgets(tmp,32,stdin)!=NULL))
{
if(tmp[0]=='\n')
break;
strtok(tmp,"\n");
strncpy(mjstr[i],tmp,31);
fflush(stdin);
i++;
}
i--;
if(i<1|i>63)
errend("対象は1~63個です");
SORTIT(&mjstr[0][0],&rank[0],i,32);
SORTIU(&rank[0],&queue[0],i);
printf("数量 文字列\n");
j=1;
for(;i>=1;i--)
{
if(i!=1&rank[queue[i]]==rank[queue[i-1]])
{
j++;
continue;
}
printf("%2i \'%s\'\n",j,mjstr[queue[i]]);
j=1;
}
}
-----------------------------
MAP4370 MSP-Iris