単純選択ノートで、入力された値を昇順に表示するプログラムを作っていますが、実行したところ数値を入力し終えてEnterを押したときにSegmentation fault (コアダンプ)が表示され、プログラムが正常に作動しませんでした。原因が分かれば教えて下さい。ソースコードは以下の通りです。
#include<stdio.h> #include<stdlib.h> #define swap(type, x, y)do{type t = x; x=y; y=t;}while(0) void selection(int a[], int n) { int i,j; for(i=0; i<n-1; n++){ int min= i; for(j=i+1; j<n; j++){ if(a[j]<a[min]) min=j; } swap(int, a[i], a[min]); } } int main() { int i,nx; int *x; puts("単純選択ソート"); printf("要素数:"); scanf("%d", &nx); x=calloc(nx, sizeof(int)); for(i=0; i<nx; i++){ printf("x[%d]", i); scanf("%d", &x[i]); } selection(x,nx); puts("昇順にソートしました"); for(i=0; i<nx; i++) printf("x[%d]=%d\n", i, x[i]); free(x); return 0; }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/26 16:06