#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void sort_insertion(int *data, int size)
{
int i, j, tmp;
for(i = 1; i < size; i++)
{
tmp = data[i];
for(j = i - 1; j >= 0 && data[j] > tmp; j--)
{
data[j + 1] = data[j];
}
data[j + 1] = tmp;
}
}
void s_i(int *data, int size)
{
int i, j, tmp;
i = 1;
do
{
tmp = data[i];
j = i;
do
{
data[j + 1] = data[j];
j--;
} while(j >= 0 && data[j] > tmp);
data[j + 1] = tmp;
i++;
} while(i < size);
}
void print_array(int *data, int size)
{
for(int i = 0; i < size; i++)
{
}
}
void p_a(int *data, int size)
{
int i = 0;
do
{
i++;
} while(i < size);
}
void A(int **data, int **size)
{
sort_insertion(*data, **size);
print_array(*data ,**size);
printf("\r\nC89 style was called!"); }
void B(int **data, int **size)
{
s_i(*data, **size);
p_a(*data ,**size);
printf("\r\nC99 style was called!"); }
int get_input_stream(void)
{
int choise;
return choise;
}
void extension(int *data, int *size)
{
(get_input_stream() == 1) ? A(&data, &size)
: B(&data, &size);
}
int main(void)
{
int data[] = { 10, 2, 3, 4, 1000, 50, 32 };
int length = sizeof(data)/sizeof(int);
extension(data, &length);
return 0;
}
I2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwoKI2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIHNvcnRfaW5zZXJ0aW9uKGludCAqZGF0YSwgaW50IHNpemUpCnsKCWludCBpLCBqLCB0bXA7CgoJZm9yKGkgPSAxOyBpIDwgc2l6ZTsgaSsrKQoJewoJCXRtcCA9IGRhdGFbaV07CgkJCgkJZm9yKGogPSBpIC0gMTsgaiA+PSAwICYmIGRhdGFbal0gPiB0bXA7IGotLSkKCQl7CgkJCWRhdGFbaiArIDFdID0gZGF0YVtqXTsKCQl9CgoJCWRhdGFbaiArIDFdID0gdG1wOwoJfQp9Cgp2b2lkIHNfaShpbnQgKmRhdGEsIGludCBzaXplKQp7CglpbnQgaSwgaiwgdG1wOwoKCWkgPSAxOwoKCWRvCgl7CgkJdG1wID0gZGF0YVtpXTsKCgkJaiA9IGk7CgoJCWRvCgkJewoJCQlkYXRhW2ogKyAxXSA9IGRhdGFbal07CgoJCQlqLS07CgkJfSB3aGlsZShqID49IDAgJiYgZGF0YVtqXSA+IHRtcCk7CgoJCWRhdGFbaiArIDFdID0gdG1wOwoKCQlpKys7Cgl9IHdoaWxlKGkgPCBzaXplKTsKfQoKdm9pZCBwcmludF9hcnJheShpbnQgKmRhdGEsIGludCBzaXplKQp7Cglmb3IoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQoJewoJCXByaW50ZigiJWkgIiwgZGF0YVtpXSk7Cgl9Cn0KCnZvaWQgcF9hKGludCAqZGF0YSwgaW50IHNpemUpCnsKCWludCBpID0gMDsKCglkbwoJewoJCXByaW50ZigiJWkgIiwgZGF0YVtpXSk7CgkJaSsrOwoJfSB3aGlsZShpIDwgc2l6ZSk7Cn0KCnZvaWQgQShpbnQgKipkYXRhLCBpbnQgKipzaXplKQp7Cglzb3J0X2luc2VydGlvbigqZGF0YSwgKipzaXplKTsKCXByaW50X2FycmF5KCpkYXRhICwqKnNpemUpOwoJcHJpbnRmKCJcclxuQzg5IHN0eWxlIHdhcyBjYWxsZWQhIik7Cn0KCnZvaWQgQihpbnQgKipkYXRhLCBpbnQgKipzaXplKQp7CglzX2koKmRhdGEsICoqc2l6ZSk7CglwX2EoKmRhdGEgLCoqc2l6ZSk7CglwcmludGYoIlxyXG5DOTkgc3R5bGUgd2FzIGNhbGxlZCEiKTsKfQoKaW50IGdldF9pbnB1dF9zdHJlYW0odm9pZCkKewoJaW50IGNob2lzZTsKCXNjYW5mKCIlaSIsICZjaG9pc2UpOwoKCXJldHVybiBjaG9pc2U7Cn0KCnZvaWQgZXh0ZW5zaW9uKGludCAqZGF0YSwgaW50ICpzaXplKQp7CgkoZ2V0X2lucHV0X3N0cmVhbSgpID09IDEpID8gQSgmZGF0YSwgJnNpemUpCgkJOiBCKCZkYXRhLCAmc2l6ZSk7Cn0KCmludCBtYWluKHZvaWQpCnsKCWludCBkYXRhW10gPSB7IDEwLCAyLCAzLCA0LCAxMDAwLCA1MCwgMzIgfTsKCWludCBsZW5ndGggPSBzaXplb2YoZGF0YSkvc2l6ZW9mKGludCk7CgoJZXh0ZW5zaW9uKGRhdGEsICZsZW5ndGgpOwoKCXJldHVybiAwOwp9