[ create a new paste ] login | about

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

C, pasted on Feb 9:
#include <stdio.h>
#include <stdlib.h>

/*定数*/
#define NUM 10
#define INPUTMIN 1
#define INPUTMAX 10

/*見やすくするためマクロ*/
#define POINTER ((int*)a)
#define CNT1 (*(int*)a)
#define INPUT(x) (*(((int*)a) + 1 + (x)))
#define CNT2 (*(((int*)a) + NUM + 1))
#define HOGE (*(((int*)a) + NUM + 2))

int main(){
	int a;	/*むりやりint型をポインターにする*/
	a = (int)malloc(sizeof(int) * (NUM + 3));
		/*0: カウンタ, 1-NUM: 入力データ, NUM+1: カウンタその2, NUM+2:一時変数*/
	/*入力*/
	for(CNT1 = 0; CNT1 < NUM; CNT1 ++) {
		printf("入力をしてください(%d番目) > ", CNT1 + 1);
		HOGE = scanf("%d", &INPUT(CNT1));
		if (HOGE != 1 || INPUT(CNT1) < INPUTMIN || INPUT(CNT1) > INPUTMAX) {
			printf("入力は%dから%dまでにして下さい\n", INPUTMIN, INPUTMAX);
			if (HOGE != 1) while(getchar()!='\n');
			CNT1 --;
			continue;
		}
	}
	/*単純ソート*/
	for(CNT1 = 0; CNT1 < NUM - 1; CNT1 ++) {
		for(CNT2 = CNT1 + 1; CNT2 < NUM; CNT2 ++) {
			if (INPUT(CNT1) > INPUT(CNT2)) {
				HOGE = INPUT(CNT1);
				INPUT(CNT1) = INPUT(CNT2);
				INPUT(CNT2) = HOGE;
			}
		}
	}
	/*表示*/
	puts("結果:");
	for(CNT1 = 0; CNT1 < NUM; CNT1 ++) {
		printf("%d ", INPUT(CNT1));
	}
	free(POINTER);
	return 0;
}


Output:
1
Timeout


Create a new paste based on this one


Comments: