#include <stdio.h> #define N 100 int main(void) { double a[N][N], b[N][N], tmp; int i, j, k, n; printf("input matrix size\n"); scanf("%d", &n); for (j = 0; j < n; j++) { for (i = 0; i < n; i++) { a[j][i] = 0.0; b[j][i] = 0.0; } } for (i = 0; i < n; i++) b[i][i] = 1.0; for (j = 0; j < n; j++) { for (i = 0; i < n; i++) { scanf("%lf", &a[j][i]); } } for (k = 0; k < n; k++) { tmp = a[k][k]; for (i = 0; i < n; i++) { a[k][i] /= tmp; b[k][i] /= tmp; } for (j = 0; j < n; j++) { if (j != k) { tmp = a[j][k]; for (i = 0; i < n; i++) { a[j][i] -= a[k][i] * tmp; b[j][i] -= b[k][i] * tmp; } } } } for (j = 0; j < n; j++) { for (i = 0; i < n; i++) { printf("%f ", b[j][i]); } printf("\n"); } return 0; }
これを, ./ex2_1 < input と入力することによって,標準入力 から,このファイルの内容を入力することができる.この方法で,実行できる ことを確かめなさい.
3
3.0 1.0 2.0
5.0 1.0 3.0
4.0 2.0 1.0
#include <stdio.h> int main(void) { char str1[100], str2[100]; int i, j; printf("input string "); scanf("%s", str1); i = 0; j = 0; while (str1[i] != '\0') { if (str1[i] < '0' || str1[i] > '9') { str2[j] = str1[i]; j++; } i++; } str2[j] = '\0'; printf("output string = %s\n", str2); return 0; }
#include <stdio.h> int main(void) { int n, tmp; int digit; /* 桁数 */ printf("input number "); scanf("%d", &n); tmp = n; digit = 0; do { tmp /= 10; digit++; } while (tmp > 0); printf("%d is the %d-digit number\n", n, digit); return 0; }
例題 1のプログラムを参考にして,Gauss-Jordan法を用いて連立一次方程式の 解を求めるプログラムを作成しなさい. 入力に使うファイルは こちらから,ダウンロードすること. 最後の列は解ベクトルである。 この入力ファイルを用いた計算結果をレポートに記載すること.
例題 2のプログラムを参考にして,文字列str1および文字列str2を入力し,入 力された文字列str2に含まれない文字を,文字列str1から全て取り除いて表示 するプログラムを作成せよ. 例えば,str1が"tsukuba"でstr2が"tuka"ならば,"tukua"と表示される. str1を"information"として,str2を"ifort"とした場合の結果をレポートに記 載すること.
例題 3のプログラムを参考に,正の整数値を読み込んで,その数を逆順に表示 するプログラムを作成しなさい.例えば123を入力すると321と表示される.