[ create a new paste ] login | about

Link: http://codepad.org/n8gRbiTl    [ raw code | fork ]

C, pasted on Jun 13:
#include <stdio.h>
#include <stdlib.h>

typedef struct{
	int c;
	int prob;
}Data;

int comp(const void *, const void *);
void put1(int);

int main(){
	int c;
	int i;
	int prob;
	int size;
	Data *data;
	
	printf("入力個数 > ");
	scanf("%d",&size);
	while (getchar() != '\n');
	putchar('\n');
	
	data = (Data*)malloc(sizeof(Data)*size);
	
	for(i = 0;i < size;i++){
		printf("文字 > ");
		data[i].c = getchar();
		printf("確率 > ");
		scanf("%d",&data[i].prob);
		while (getchar() != '\n');
		putchar('\n');
	}
	
	qsort(data, size, sizeof(Data), comp);
	
	for(i = 0;i < size;i++){
		printf("%c:",data[i].c);
		put1(i);
		if(i != size-1) putchar('0');
		putchar('\n');
	}
	
	free(data);
	return 0;
}

void put1(int times){
	int i;
	for(i = 0;i < times;i++) putchar('1');
}

int comp(const void *a, const void *b){
	return (*(Data*)b).prob - (*(Data*)a).prob;
}


Create a new paste based on this one


Comments: