Ⅰ. 5行5列の行列[A]にデータを入力し、表示しなさい。データは不規則な値でキーボードから入力します。
Ⅱ. 行列[A]の転置行列を行列に代入し、表示しなさい。
Ⅲ. [C] ← [A]+ の計算をして行列[C]表示しなさい。
Ⅳ. [C] ← [A]- の計算をして行列[C]表示しなさい。
Ⅴ. [C] ← [A]* の計算をして行列[C]表示しなさい。
Ⅵ. Ⅴ.で求めた行列[C]の転置行列を行列に代入し、表示しなさい。
という問題です。
過去ログに同じ問題があったのですが、どういうふうに値を入力すればエラー以外が表示され結果が出るのか教えてほしいです。
#include<stdio.h>
int input(int x[][5])
{ int a,k,j,n=5;
for(j=1;j<=n;j++){
for(k=1;k<=n;k++){
scanf("%d",&x[j-1][k-1]);
if(scanf("%d",&x[j-1][k-1])!=1){
printf("エラー");
return(0);
} }
printf("\n");
}
return(n);
}
void kaku(int n,int x[][5])
{ int i,j;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%3d",x[i][j]);
}
printf("\n");
}
printf("\n");
return;
}
void han(int n,int a[][5],int b[][5])
{ int j,k;
for(j=n-1;j>=0;j--){
for(k=0;k<n;k++){
b[k][j]=a[j][k];
}
}
printf("\n");
return;
}
void wa(int n,int a[][5],int b[][5],int c[][5])
{ int j,k;
for(j=0;j<n;j++){
for(k=0;k<n;k++){
c[j][k]=a[j][k]+b[j][k];
}
}
return;
}
void sa(int n,int a[][5],int b[][5],int c[][5])
{ int i,j,k;
for(j=0;j<n;j++){
for(k=0;k<n;k++){
c[j][k]=a[j][k]-b[j][k];
}
}
return;
}
void seki(int n,int a[][5], int b[][5],int c[][5])
{ int i,j,k;
for(j=0;j<n;j++){
for(k=0;k<n;k++){
for(i=0;i<n;i++){
c[j][k]=c[j][k]+a[j][i]*b[i][j];
}
}
}
return;
}
int main(void)
{ int a[5][5]={0},b[5][5]={0},c[5][5]={0},n;
n=input(a);
kaku(n,a);
han(n,a,b);
kaku(n,b);
wa(n,a,b,c);
kaku(n,c);
sa(n,a,b,c);
kaku(n,c);
seki(n,a,b,c);
kaku(n,c);
han(n,c,b);
kaku(n,b);
return(0);
}