前提・実現したいこと
C言語初心者です。配列の要素の数値を順番に並び替えるプログラムを作っています。
(参考書の例題を写したものです)
並び替えたあと最初の要素が必ず-1になってしまいます。一番大きい数値が-1になっていると思われます。ほかの要素は数値順になっています。
発生している問題・エラーメッセージ
ーー実行結果ーー
ソート準備:
5232 26436 4499 31796 18906 6587 6989 12260 8042 7528
ソート開始:
ソート終了:
-1 4499 5232 6587 6989 7528 8042 12260 18906 26436
ーーーーーーーー
C言語(拡張子は.c)
1#include <stdio.h> 2#include <stdlib.h> 3#include <time.h> 4 5#define N 10 //データの件数 6 7 8int sort[N]; 9 10 11void BubbleSort(void){ 12 int i,j,flag; 13 14 do{ 15 flag = 0; 16 for(i=0;i<N;i++){ 17 if(sort[i]>sort[i+1]){ 18 flag = 1; 19 j = sort[i]; 20 sort[i] = sort[i+1]; 21 sort[i+1] = j; 22 } 23 } 24 }while(flag == 1); 25} 26 27 28int main(void){ 29 int i; 30 31 srand((unsigned int)time(NULL)); 32 33 printf("ソート準備:\n"); 34 for(i = 0; i<N; i++){ 35 /*配列にランダムな値を格納*/ 36 sort[i]=rand(); 37 printf("%d ",sort[i]); 38 } 39 40 printf("\nソート開始:\n"); 41 BubbleSort(); 42 43 printf("\nソート終了:\n"); 44 45 for(i=0;i<N;i++){ 46 printf("%d ",sort[i]); 47 } 48 49 return EXIT_SUCCESS; 50} 51
補足情報(FW/ツールのバージョンなど)
Eclipse IDE for C/C++ Developers
Version: Neon.2 Release (4.6.2)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/12 08:19