このプログラムを実行すると以下のような表示がなされます。
「1行1列:」の時に「6535」を入力した後に、44を「2行1列:」の前に入力しなくてはならなくて、しっかりとした計算ができません。
このプログラムの問題がわかる人はいますでしょうか?
(拙い説明で申し訳ございません!!)
(モニターの表示画面)
============================================
n × n 行列を表示します
n = 3
1列目を入力してください ↓
1行1列:6535
44
2行1列:653
3行1列:764
2列目を入力してください ↓
1行2列:42
2行2列:642
3行2列:57
3列目を入力してください ↓
1行3列:535
2行3列:67
3行3列:4
以下の 3 × 3 の行列が入力されました ↓
6535 764 57
44 42 535
653 642 67
Program ended with exit code: 0
============================================
(以下がコードです)
#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
printf("n × n 行列を表示します \n");
printf("n = ");
int n;
scanf("%d",&n);
int s[n][n];
for (int k = 1; k <= n; k++)
{
printf("%d列目を入力してください ↓ \n",k);
for (int i = 1; i <= n; i++)
{
printf("%d行%d列:",i,k);
scanf("%d ",&s[i-1][k-1]);
}
}
printf("以下の %d × %d の行列が入力されました ↓ \n",n,n);
for (int i = 1; i <= n; i++)
{
for (int k = 1; k <= n; k++)
{
printf("%d ",s[i-1][k-1]);
}
printf("\n");
}
printf("\n\n\n");
}