codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#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; }
Private
[
?
]
Run code
Submit