選択ソートの実行時間を計測するためのプログラムを書いているのですが、コンパイルエラーが直すことができません。
以下がソースコードです。
#include <stdio.h> #include <stdlib.h> #include <time.h> #define MAXN 1000000 int inputdata(); int selectionsort(); int printdata(); int A[MAXN],n,m; int main(){ inputdata(); selectionsort(1,n); printdata(); } int selectionsort(p,q) int p,q; { int i,j,a,cmin; clock_t start, end; start = clock(); for(j = p; j <= q; j++){ cmin=j; for(i=j+1; i<=q; i++) if(A[cmin]>A[i]) cmin=i; swap(j,cmin); } end = clock(); m=end-start; } int inputdata(){ int i; srand((unsigned)time(NULL)); printf("出力する乱数の個数を入力===>"); scanf("%d",&n); printf("\n"); printf("-------------入力データ--------------\n"); for(i=1; i<=n; i++){ A[i] = rand()%10000; printf("A[%d]=%5d ",i,A[i]); if(i%4 == 0){ printf("\n"); } } printf("\n"); } int printdata(){ int i; printf("\n"); printf("--------------ソート済みデータ------------------\n"); for(i=1; i <= n; i++){ printf("A[%d]=%5d ",i,A[i]); if(i%4 == 0){ printf("\n"); } } printf("\n"); printf("ソートの処理時間は%f秒です。 \n",(double)m / CLOCKS_PER_SEC); } int swap(i,j) int i,j; { int temp; temp=A[i]; A[i]=A[j]; A[j]=temp; } コード
このソースをコンパイルすると以下のようなエラーが出てしまいます。
warning: implicit declaration of function 'swap' is invalid in C99
[-Wimplicit-function-declaration]
swap(j,cmin);
^
Selectionsort2.c:30:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
Selectionsort2.c:49:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
Selectionsort2.c:63:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
Selectionsort2.c:73:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
5 warnings generated.
どう改善したらよいか教えてください。
どうかよろしくお願いいたします。
回答5件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2016/01/02 11:41