¤³¤Î¥Ú¡¼¥¸¤Ï¥Á¥­¤¬¹¥¤­¤¹¤®¤ë¥É¥¸¤Ã»Ò¡Ö¤Á¤Ã¤­¡¼¡×¤Î¤ä¤ëÉ׺îÉÊwiki¤Ë¤Ê¤ê¤Þ¤¹¡£¤Á¤Ã¤­¡¼¤Î¥Ç¡¼¥¿ÊݴɤʤɤËÍøÍѤµ¤ì¤Þ¤¹¡£

#include <stdio.h>//ɸ½à¥Ø¥Ã¥À
#include <stdlib.h>//Íð¿ô»ÈÍѤΤ¿¤á¤Ë»ÈÍÑ
#include <time.h>//»þ·×¤ò»ÈÍѤ¹¤ë¤¿¤á¤Ë»ÈÍÑ
#include <windows.h>//¥¿¥¤¥È¥ë¥Ð¡¼¤òÊѹ¹¤¹¤ë¤¿¤á¤Ë»ÈÍÑ


/*	¥°¥í¡¼¥Ð¥ëÊÑ¿ô	*/
int ran[256],youso[50],youso2[51];
int i,j;//·«¤êÊÖ¤·
int m,t,y;//Ë¡,¥¿¡¼¥ó¿ô,Í×ÁÇ¿ô
int flag=1,k;//flag´ÉÍýÍÑ
int yn;//yes or no
char name[50][256];//Í×ÁÇ̾
int maxp;//³ä¹ç¤ÎºÇÂçÃÍ
int d;//¥Ç¥Ð¥Ã¥°¥Õ¥é¥°
int skran[256],skko[10];//¥é¥ó¥À¥à¥¹¥­¥ëÍÑ
int sflag,skmax,count,skpop;//¥é¥ó¥À¥à¥¹¥­¥ëÍÑ

/* ¥¨¥é¡¼´Ø¿ô */
int errer(void){
		printf("Ãͤ¬ÉÔÀµ¤Ç¤¹¡£¥×¥í¥°¥é¥à¤ò½ªÎ»¤·¤Þ¤¹¡£\n");
		system("pause");
		exit(EXIT_FAILURE);
}
/*	ÆþÎÏÃÍȽÄê´Ø¿ô1	 */
int checkflag1(int ck){
	if(ck == 1 || ck == 2){}
	else{
		errer();
	}
	return 0;
}
/*	ÆþÎÏÃÍȽÄê´Ø¿ô2	 */
int checkflag2(int ck,int a,int b){
	if(ck < b && ck > a){}
	else{
		errer();
	}
	return 0;
}

/*¥¿¡¼¥óÀßÄê´Ø¿ô*/
int turn(void){
	printf("Ũ¤Î¹ÔÆ°¥¿¡¼¥ó¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤(1¡Á256¥¿¡¼¥ó¤Þ¤Ç)¡§");		scanf("%d",&t);
	checkflag2(t,0,257);
	return 0;
}

/*¥é¥ó¥À¥àȯư¥¹¥­¥ë¥Õ¥é¥°*/
int skileflag(void){
	printf("¥é¥ó¥À¥àȯư¥¹¥­¥ë­¡£Ï£Î­¢£Ï£Æ£Æ\n¿ôÃͤòÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡§");		scanf("%d",&sflag);
	checkflag1(sflag);
	if(sflag == 1){
		printf("¥¹¥­¥ë¤ÎºÇÂçȯư²ó¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤(¥¿¡¼¥ó¿ô¤è¤ê¾®¤µ¤¤ÃÍ)¡§");		scanf("%d",&skmax);
		checkflag2(skmax,-1,t+1);
		printf("¥¹¥­¥ë¤ÎȯưΨ¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤(100°Ê²¼0°Ê¾å)¡§");		scanf("%d",&skpop);
		checkflag2(skpop,-1,101);
	}
}

/*¥³¥Þ¥ó¥É¿ôÀßÄê´Ø¿ô*/
int comandsu(void){
	printf("Ũ¤Î¹ÔÆ°¥³¥Þ¥ó¥É¿ô¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤(1¡Á50¸Ä¤Þ¤Ç)¡§");			scanf("%d",&y);
	checkflag2(y,0,51);
	return 0;
}

/*¥³¥Þ¥ó¥É̾ÀßÄê´Ø¿ô*/
int comandname(void){
	memset(name, 0x00, sizeof(name));//name½é´ü²½
	printf("\nŨ¤Î¹ÔÆ°¥³¥Þ¥ó¥É¤Ë̾Á°¤òÉÕ¤±¤Þ¤¹¤«¡©­¡yes­¢no\n1¤«2¤ò¡ØȾ³Ñ¡Ù¤ÇÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡§");
	scanf("%d",&yn);
	if(yn == 1){
		for(i = 0; i < y; i++){
			printf("¥³¥Þ¥ó¥É%d¤Î̾Á°¤òÆþÎϤ·¤Þ¤¹¡§",i+1);		scanf("%s",name[i]);
		}
	}
	else if(yn == 2){
		//¥³¥Þ¥ó¥É̾¤ò¥³¥Þ¥ó¥É£±¡Á¥³¥Þ¥ó¥ÉÍ×ÁÇ¿ô¤ËÀßÄê
		printf("¥³¥Þ¥ó¥É̾¤ò¿ô»ú¤Ë¤·¤Þ¤¹¡£\n");
		for(i = 0; i < y; i++){
			name[i][0]=(i+1) / 10 + 48;
			name[i][1]=(i+1) % 10 + 48;

		}
	}
	else{
		errer();
	}
	return 0;

}

/*¥³¥Þ¥ó¥É³ä¹çÆþÎÏ´Ø¿ô*/
int comandritu(void){
	memset(youso, 0x00, sizeof(youso));//youso½é´ü²½
	memset(youso2, 0x00, sizeof(youso2));//youso2½é´ü²½
	printf("\n");
	printf("\n¥³¥Þ¥ó¥É¤Î³ä¹ç¤ò·è¤á¤Þ¤¹¡£\n");
	printf("³ä¹ç¤ò¼êÆþÎϤ«¼«Æ°ÆþÎϤ«¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£­¡¼êÆþÎÏ­¢¼«Æ°ÆþÎÏ\n1¤«2¤ò¡ØȾ³Ñ¡Ù¤ÇÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡§");
	scanf("%d",&yn);
	if(yn == 1){
		for(i = 0; i < y; i++){
			printf("%s¤Î³ä¹ç¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤(1¡Á100)¡§",name[i]);
			scanf("%d",&youso[i]);
			if(youso[i]>100 || maxp < 1){
				errer();
			}
			youso2[i+1] = youso2[i]+youso[i];

		}
	}
	else if(yn == 2){
		printf("³ä¹ç¤ÎºÇÂçÃͤòÆþÎϤ·¤Æ¤¯¤À¤µ¤¤(1¡Á100)¡§");		scanf("%d",&maxp);
		if(maxp>100 || maxp < 1){
			errer();
		}
		for(i = 0; i < y; i++){
			youso[i] = rand() % maxp + 1;//Íð¿ô¤Î³ÊǼ
			youso2[i+1] = youso2[i]+youso[i];

		}
	}
	else{
		errer();
	}
	//ºÇÂçÍ×ÁÇ¿ô£í¤Î·×»»
	m=0;//£í¤Î½é´ü²½
	for(i = 0; i < y; i++){
		m = m + youso[i];
	}
	return 0;
}

/*Íð¿ôÀ¸À®´Ø¿ô*/
int ransu(void){
	memset(ran, 0x00, sizeof(ran));//ran½é´ü²½
	printf("\nŨ¤Î¹ÔÆ°¤òºîÀ®¤·¤Þ¤¹¡£\n\n");
	for(i = 0; i < t; i++){
		ran[i] = rand() % m + 1;//Íð¿ô¤Î³ÊǼ
	}
	return 0;
}
/* ¥é¥ó¥À¥àȯư¥¹¥­¥ë´Ø¿ô */
int ranskile(void){
	memset(skran, 0x00, sizeof(skran));//skran½é´ü²½
	memset(skko, 0x00, sizeof(skko));//skko½é´ü²½
	count=0;
	for(i = 0; i < t; i++){
		if(count<skmax){
			skran[i] = rand() % 100 + 1;//Íð¿ô¤Î³ÊǼ
			if(skran[i] > 0 && skran[i] < skpop + 1){
				count=count+1;
				skko[1]=skko[1]+1;
			}
			else if(skran[i] > skpop && skran[i] < 101){
				skko[0]=skko[0]+1;
			}
			else{
				errer();
			}
			printf("%d\t%d\t%d\t%d\n",skran[i],count,skko[1],skko[0]);
		}
	}
}

/*¥Ç¥Ð¥Ã¥¯¥Õ¥é¥°*/
int dflag(void){
	printf("¥Ç¥Ð¥Ã¥¯¤ò¤·¤Þ¤¹¤«¡©­¡¤Ï¤¤­¢¤¤¤¤¤¨\n¿ô»ú¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡§");
	scanf("%d",&d);
	checkflag1(d);
	return 0;
}

/*ÃͳÎǧÍѥǥХå°´Ø¿ô*/
int debag(void){
	if(d ==1){
		printf("ºÇÂçÍ×ÁÇ¿ô=%d\n",m);
		for(i=1;i<=y;i++){
			printf("%s=%d\n",name[i-1],youso2[i]);
		}
		printf("\n");
		for(i = 0; i < t; i++){
			printf("Íð¿ô%d:%d\t",i+1,ran[i]);
		}
		if(sflag == 1){
			printf("\ncount=%d\tskmax=%d\tskpop=%d\tskko[0]=%d\tskko[1]=%d\n",count,skmax,skpop,skko[0],skko[1]);
			for(i = 0; i < t; i++){
				printf("¥¹¥­¥ëÍð¿ô%d¡§%d\t",i+1,skran[i]);
			}
		}
	}
	printf("\n\n");
	return 0;
}

/*ɽ¼¨´Ø¿ô*/
int hyoji(void){
	debag();
	for(i=0;i<t;i++){
		for(j=0;j<y;j++){
			if(ran[i]<=youso2[j+1] && ran[i] > youso2[j]){
				printf("%d\t¥¿¡¼¥ó¡§\t%s\n",i+1,name[j]);
			}
		}
		if(sflag == 1){
			if(skran[i] > -1 && skran[i] < skpop+1){
			printf("\t\t¥¹¥­¥ë¤Îȯư\n");
			}
			else{
				printf("\n");
			}
		}
	}
	return 0;

}

/*³¹Ô´Ø¿ô*/
int zoku(void){
	printf("\n\n­¡¤½¤Î¤Þ¤Þ¤ÎÀßÄê¤Ç³¹Ô\n­¢Å¨¤Î¹ÔÆ°¥¿¡¼¥ó¤ÎÊѹ¹\n­£Å¨¤Î¹ÔÆ°Í×ÁÇ¿ô¤ÎÊѹ¹\n­¤¥³¥Þ¥ó¥É̾¤ÎÊѹ¹\n­¥¥³¥Þ¥ó¥É¤Î³ÎΨ¤ÎÊѹ¹\n");
	printf("­¦¥Ç¥Ð¥Ã¥¯¤ÎÀßÄê¤ÎÊѹ¹\n­§¥¹¥­¥ëÀßÄê\n­¨½ªÎ»¤¹¤ë\n");
	printf("Âбþ¤¹¤ë¿ô»ú¤ò¡ÖȾ³Ñ¡×¤ÇÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡§");	scanf("%d",&flag);

	if(flag == 1){}

	else if(flag == 2){
		turn();
	}
	
	else if(flag == 3){
		comandsu();
		comandname();
		comandritu();
	}

	else if(flag == 4){
		comandname();
	}
	else if(flag == 5){
		comandritu();
	}
	else if(flag == 6){
		dflag();
	}
	else if(flag == 7){
		skileflag();
	}
	else if(flag == 8){
		exit(EXIT_FAILURE);
	}
	else{
		errer();
	}
	return 0;
}
/*½ªÎ»¥Õ¥é¥°*/
int goodbye(void){
	printf("\n\n");
	printf("¤³¤ì°Ê¹ß¤Ï¤É¤¦¤µ¤ì¤Þ¤¹¤«¡©\n­¡Â³¹Ô\n­¢ÀßÄêÊѹ¹\n­£½ªÎ»\n");
	printf("Âбþ¤¹¤ë¿ô»ú¤ò¡ÖȾ³Ñ¡×¤ÇÆþÎϤ·¤Æ¤¯¤À¤µ¤¤¡§");	scanf("%d",&yn);
	if(yn == 1){}
	else if(yn == 2){
		zoku();
	}
	else if(yn == 3){
		printf("½ªÎ»¤·¤Þ¤¹\n");
		system("pause");
		exit(EXIT_FAILURE);
	}
	else{
		errer();
	}
	return 0;
}


int main(void){
	SetConsoleTitle("ÀïÆ®¹ÔÆ°³ä¤êÅö¤Æ¥×¥í¥°¥é¥à");//¥¿¥¤¥È¥ë¥Ð¡¼

	srand((unsigned)time(NULL));//¸½ºß»þ¹ï¤òSEED¤Ë¤·¤Æ°Û¤Ê¤ëÍð¿ô¤ÎÀ¸À®

	dflag();
	turn();
	comandsu();
	skileflag();
	comandname();
	comandritu();
	
	while(1){
		ransu();
		ranskile();
		hyoji();
		goodbye();
	}
	return 0;
}

¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

¤É¤Ê¤¿¤Ç¤âÊÔ½¸¤Ç¤­¤Þ¤¹