ソートするプログラムが正しく動作しません
Posted: 2011年1月31日(月) 14:06
初めまして。
大学の講義で、「50個の整数を読み込んで小さい順にソートするプログラムを作りなさい(バブルソートは用いないこと)」という課題が出て、そのプログラムを作成したのですが、どこか間違えているらしく、ソート前もソート後も整数の並び順が全く変わりません・・・
課題の提出期限が明後日までなので、非常に焦っています。
どうか、私が作成したプログラムの間違っているところを指摘して頂けないでしょうか。
よろしくお願いいたします。
私が作成したプログラムは、以下のようになっています。
#include<stdio.h>
#define SIZE 50
int main(void)
{
int a[SIZE],temp,k,i;
for (k=0; k<SIZE; k++)
scanf("%d",&a[k]);
printf("整列前:");
for (k=0; k<SIZE; k++) {
if (k%5 == 0)
printf("\n");
printf("%12d",a[k]);
}
printf("\n");
for (k=1; k<SIZE; k++) {
temp = a[SIZE];
if (a[k-1] > temp) {
i = k;
do {
a = a[i-1];
i--;
}while (i > 0 && a[i-1] > temp);
a = temp;
}
}
printf("整列後:");
for (k=0; k<SIZE; k++) {
if (k%5 == 0)
printf("\n");
printf("%12d",a[k]);
}
printf("\n");
return 0;
}
なお、50個の整数は講義の方で決められていて、
8181 5316 2570 692 46
52 6880 2108 1953 6584
1148 3740 5930 6970 6611
94 4268 9510 2986 8406
5378 2685 9804 137 9149
5456 7690 559 2382 9080
788 563 4396 3358 1256
4443 3410 8136 6552 5363
4721 7700 9103 652 4671
5715 746 8939 5226 3733
となっています。
大学の講義で、「50個の整数を読み込んで小さい順にソートするプログラムを作りなさい(バブルソートは用いないこと)」という課題が出て、そのプログラムを作成したのですが、どこか間違えているらしく、ソート前もソート後も整数の並び順が全く変わりません・・・
課題の提出期限が明後日までなので、非常に焦っています。
どうか、私が作成したプログラムの間違っているところを指摘して頂けないでしょうか。
よろしくお願いいたします。
私が作成したプログラムは、以下のようになっています。
#include<stdio.h>
#define SIZE 50
int main(void)
{
int a[SIZE],temp,k,i;
for (k=0; k<SIZE; k++)
scanf("%d",&a[k]);
printf("整列前:");
for (k=0; k<SIZE; k++) {
if (k%5 == 0)
printf("\n");
printf("%12d",a[k]);
}
printf("\n");
for (k=1; k<SIZE; k++) {
temp = a[SIZE];
if (a[k-1] > temp) {
i = k;
do {
a = a[i-1];
i--;
}while (i > 0 && a[i-1] > temp);
a = temp;
}
}
printf("整列後:");
for (k=0; k<SIZE; k++) {
if (k%5 == 0)
printf("\n");
printf("%12d",a[k]);
}
printf("\n");
return 0;
}
なお、50個の整数は講義の方で決められていて、
8181 5316 2570 692 46
52 6880 2108 1953 6584
1148 3740 5930 6970 6611
94 4268 9510 2986 8406
5378 2685 9804 137 9149
5456 7690 559 2382 9080
788 563 4396 3358 1256
4443 3410 8136 6552 5363
4721 7700 9103 652 4671
5715 746 8939 5226 3733
となっています。