#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;
}