プロが教えるわが家の防犯対策術!

#include<stdio.h>
#define N 100
void output(int n, int s, double a[][N], double b[]) {
int i, j;
printf("\n第%2d 消去ステップ\n", s);
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++)
printf(" %8.2f", a[i][j]);
printf(" %8.2f\n", b[i]);
}
}
void data_in(int *n, double *a[N][N],double *b[N]) {
int i, j;
printf("namber of demension(n) = ");
scanf("%d", &n);
for (i = 1; i <= *n; i++) {
for (j = 1; j <= *n; j++) {
printf("a[%d][%d] =", i, j);
scanf("%lf", &a[i][j]);
}
printf("b[%d] =", i);
scanf("%lf", &b[i]);
}
}
void calcution(int n, double a[N][N], double b[N],double *x[N]) {
int i, j, k;
double q, p;
printf("\nGauss-Jordan消去法\n");
printf("input data\n");
for (j = 1; j <= n; j++)
printf(" x%d", j);
printf(" rhs\n");
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++)
printf(" %7.2f", a[i][j]);
printf(" %7.2f\n", b[i]);
}
for (i = 1; i <= n; i++) {
p = a[i][i];
for (j = i; j <= n; j++) a[i][j] = a[i][j] / p;
b[i] = b[i] / p;
for (k = 1; k <= n; k++) {
if (k != i) {
q = a[k][i];
for (j = i; j <= n; j++)
a[k][j] -= q*a[i][j];
b[k] -= q*b[i];
}
}
output(n, i, a, b);
}
*x[N] = b[i];
}
void data_out(int n,double x[N]) {
int i;
printf("\nsolution :\n\n");
for (i = 1; i <= n; i++)
printf(" x[%d] = %8.2f\n", i, x[i]);
}
int main(void) {
int n,s;
double a[N][N], b[N], x[N];
output(n, s, a, b);
data_in(&n, &a[][N], &b[N]);
calcution(n, a, b[N],&x[N]);
data_out(n, &x[N]);
return 0;
}

A 回答 (2件)

とりあえず


・namber
・demension(s)
・calcution
あたりは間違ってるな.
    • good
    • 0
この回答へのお礼

どうやって治せますか?

お礼日時:2020/07/31 09:11

No1>・calcution


は定義した関数名なので、自信を持って「間違い」とは言えない気がします
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!