#include <stdio.h>
#include <stdlib.h>
double dtw(int ,int ,double*,double*);
int main(void){
int iG,jG,i,j;
double dtwtemp;
printf("give the 1st size : ");
scanf("%d",&iG);
printf("\n");
printf("give the 2st size : ");
scanf("%d",&jG);
printf("\n");
double *a=malloc(iG*sizeof(double));
double *b=malloc(jG*sizeof(double));
for(i=0;i<iG;i++){
printf("give %d number of first table ",i+1);
scanf("%lf",&a[i]);
printf("\n");
}
printf("----------------\n");
for(j=0;j<jG;j++){
printf("give %d number of second table ",j+1);
scanf("%lf",&b[j]);
printf("\n");
}
for(i=0;i<iG;i++){
printf("%.2f ",a[i]);}
printf("\n");
for(j=0;j<jG;j++){
printf("%.2f ",b[j]);}
dtw(i,j, &a , &b);
}
double dtw(int i ,int j ,double *a ,double *b){
double dtwmin,dtwtemp;
dtwtemp=(a[i]-b[j])*(a[i]-b[j]);
if (i>1){
if (j>1){
dtwmin=dtw(i,j,&a[(i-1)],&b[j]);
if (dtwmin>dtw(i,j,&a[i],&b[(j-1)]))
dtwmin=dtw(i,j,&a[i],&b[(j-1)]);
if (dtwmin>dtw(i,j,&a[(i-1)],&b[(j-1)]))
dtwmin=dtw(i,j,&a[(i-1)],&b[(j-1)]);
}
else
dtwmin=dtw(i,j,&a[(i-1)],&b[1]);
}
else{
if (j>1)
dtwmin=dtw(i,j,&a[1],&b[(j-1)]);
else
dtwmin=dtw(i,j,&a[1],&b[1]);
}
return dtwtemp+dtwmin ;}
誰かが助けてください、セグメンテーションフォルトが表示され、何が起こっているのか分かりません。テーブルの距離を検出するプログラム
http://ericlippert.com/2014/03/05/how-to-debug-small-programs/ – Biffen