アプリ版:「スタンプのみでお礼する」機能のリリースについて

#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, &b);
calcution(n, a, b[N], &x[N]);
data_out(n, &x[N]);
return 0;
}

A 回答 (2件)

全行1カラム目から書き、しかも空行も全く無しですとご自身でも物凄く読みにくくないですか?


あと、通常この掲示板を参照されている方は日常日本語を使っておられるはずです。
ご質問に書かれたソースコードを全部読んで「何をするプロゴラムで、どういう入力を受けて何をどう出力する者なのかを解読しかつ、その不備を見つけてください」ということでしょうか?
それはいくら何でも。。。(^^;

そもそもコンパイル&リンクは通っていますか?
「間違ている」ということは期待した動きをしてくれないということだと思いますが、具体的にどう間違った動きをするのでしょう?
それくらいは書かれた方がよいかと思います。個人的には。(_ _)
    • good
    • 1

何がしたくて、どうなったのかを書かないと。


書いた通りには動いてますよね。
    • good
    • 1

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