벡터를 이용한 오름차순 정리 문제 인데 계속 오류가납니다 ㅠ
바나나맛사탕
질문 제목 : 벡터 오름차순정리 인데 뭐가 잘못됐는지모르겟어요 ㅠ
오류가 계속 납니다 ㅠ
원래 문제는 이건데..User enters dimension of vectors D and a number of vectors N.
Then user enters N vectors of dimension D.
The program prints all vectors in the form: {x1, x2, x3, …, xD} (1 vector in each line)
and then maximum norms of all vectors in ascending order.질문 내용 :
double * VectorInput(int N);
void PrintVector(double *v, int N);
double NormMax (double *v, int N);
void Sort (double *v, int N);
void main(void)
{
int N, D, i;
printf(\nEnter dimension of vectors, D:); scanf(%d, &D);
printf(\nEnter number of vectors, N:); scanf(%d, &N);
double ** vectors = (double **)malloc(N*D*sizeof(double));
double *norms_max = (double *)malloc(N*sizeof(double));
for (i = 0; i N; i++)
{
printf(Enter vector number %d:, i);
vectors[i] = VectorInput(D); norms_max[i] = NormMax(vectors[i], D);
}
PrintVector(norms_max, D); Sort(norms_max, D);
for (i = 0; i N; i++) { printf(\nV%d = ,i); PrintVector(vectors[i], D);}
printf(\n\n); printf(\nVector norms in accending order:\n);
for (i = 0; i N; i++)
{
if (i == N-1) printf(%lf, norms_max[i]); else printf(%lf -, norms_max[i]);
}
printf(\n\n); getch();
}
double * VectorInput(int N)
{
double *v;
int i=0;
v = (double*) malloc(N*sizeof(double));
while (i N)
{
scanf(%lf, &v[i]); i++;
}
return v;
}
void PrintVector(double *v, int N)
{
printf({);
for (int i = 0; i N; i++) printf (%5.2lf , v[i]);
printf(}\n);
}
double NormMax (double *v, int N)
{
double norm_max = fabs(v[0]);
for (int i = 0; i N; i++)
{
if (norm_max fabs(v[i])) norm_max = fabs(v[i]);
}
return norm_max;
}
void Sort(double* v, int N)
{
long i,j; double temp;
for (i=0; i N-1; i++)
for (j=0; j N-i-1; j++)
if ( v[j+1] v[j] )
{
temp = v[j];
v[j] = v[j+1];
v[j+1] = temp;
}
}
-
옆집꼬마야
경고좀 없애주세요 ㅠ_ㅠ
-
이솔
제가 헤더를 올리기 전에 헤더파일 입력 후 실행을 시켜보니 오류는 뜨지 않고 경고만 4개가 뜨더군요. 경고를 없애달라는 말씀이신가요? 아님 어떤 오류를 해결해달라는것인지 모르겠네요.
-
앨런
헤더파일올렸습니다 ㅠ
수정좀해주세요 -
화이트
무슨 오류인지 상세히 적어주십시오. 그리고 대도록 헤더파일까지 같이 올려주셔야 합니다.