08/02/08 12:59:33
>>54
課題1だけど、そのアルゴリズムがバグっているという事実はどうしてくれようか。
#include <stdio.h>
static void print(int * a, int num)
{
int ic;
for (ic = 0; ic < num; ++ic) {
printf("%d%s", a[ic], ic < num - 1 ? ", " : "\n");
}
}
static void shift(int * a, int n)
{
int t = a[n - 1];
int i;
for (i = n - 1; i >= 1; --i) { // ←アルゴリズムどおりならint i = n - 2になる
a[i] = a[i - 1];
}
a[0] = t;
}
int main()
{
int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
print(a, sizeof(a) / sizeof(*a));
shift(a, sizeof(a) / sizeof(*a));
print(a, sizeof(a) / sizeof(*a));
return 0;
}