C/C++の宿題を片付けます 77代目
■ このスレッドは過去ログ倉庫に格納されています
0600デフォルトの名無しさん
2006/11/29(水) 01:36:45#include <stdio.h>
typedef int T;
void swap(T* x, T* y) {T temp = *x; *x = *y; *y = temp;}
void arr_cycle(T* arr, unsigned int len) {
unsigned int n = 1;
T *first, *last;
n = len - n % len;
for(first = arr, last = arr + n; ; ) if (first == last || first == --last) break; else swap(first++, last);
for(first = arr + n, last = arr + len; ; ) if (first == last || first == --last) break; else swap(first++, last);
for(first = arr, last = arr + len; ; ) if (first == last || first == --last) break; else swap(first++, last);
}
void print_array(int* t, unsigned int n) {
unsigned int i;
for(i = 0; i < n; i++) printf("%d", t[i]);
printf("\n");
}
int main(void) {
int arr[] = {0,1,2,3};
arr_cycle(arr, sizeof(arr) / sizeof(arr[0]));
print_array(arr, sizeof(arr) / sizeof(arr[0]));
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています