c言語でN次正方行列AとN次元ベクトルxの積y=Axを計算するプログラムを作っているのですが、
最初のscanfで数値を入力したらsegmentation faultと表示されてしまいます。何が原因なのでしょうか。
#include<stdio.h> #include<stdlib.h> void PrintVector(int *y, int n){ int i; for(i=0;i<n;i++){ printf("%6d",*(y+i)); } } void PrintMatrix(int *a, int n){ int i,j; int *ai; ai= a; for( i = 0 ; i < n ; i++){ for( j = 0 ; j < n ; j++){ printf("%6d", *(ai+j)); } ai+=n; printf("\n"); } printf("\n"); } int main(){ int i, j,num; int *ai; int *a, *x, *y; printf("N・・"); scanf("%d",&num); ai= (int *) malloc(num*sizeof(int)); ai=a; for(i=0;i<num;i++){ for(j=0;j<num;j++){ printf("A[%d][%d]=",i,j); scanf("%d",ai+j); } ai++; } for(i=0;i<num;i++){ printf("X[%d]=",i); scanf("%d",x+i); } printf("A = \n"); PrintMatrix(a,num); printf("x = \n"); PrintVector(x,num); for(i=0;i<num;i++){ *(y+1)=0; for(j=0;j<num;j++){ *(y+i)+=*(ai+j)**(x+j); } ai+num; } free(ai); return 0; }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/20 05:23