3×3のラテン方陣をつくるプログラムを作成したのですが、(↓)
#include <stdio.h>
int main(){
int j,k,n = 3;
int a,b,c;
int d,e;
printf("a,b,cの入力:\n");
scanf("%d%d%d",&a,&b,&c);
for(j=0; j<=n-1; j++){
for(k=0; k<=n-1; k++){
d = a * j + b * k + c;
e=d%n;
printf("%d ",e);
}
printf("\n");
}
return 0;
}
実行すると時々値が変わってしまいます。
(その都度ちゃんとコンパイルし直して実行しています。)
たとえば(a,b,c)=(1,1,1)の時に
1 2 0
2 0 1
0 1 2
と出たり
1 1 1
2 2 2
0 0 0
と出たりします。(手計算だと前者が合ってる…?)
これは答えは何通りもある、どちらも正しい、ということでしょうか、、?
後者も合っているとしたら、どのような計算でこのような結果になったのでしょうか?そもそもこれはラテン方陣ではないのでは、、(>_<)
合っていないとしたら、何らかのエラーでしょうか…?
実行した写真も載せようと思うのですが、反映に時間がかかるとの事で、補足の方に載せようと思います。
正直ラテン方陣に関してもプログラミングに関してもまだ全然分かっておらず、このような理解の乏しい質問をしてしまい本当に申し訳ないです、、どなたか教えて下さる人がいると幸いです。。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
3×3のラテン方陣のサンプルです。
#include <stdio.h>
int main()
{
int j,k, n = 3;
int a, b, c;
int v[3];
int x,e;
printf("a,b,cの入力:\n");
scanf("%d,%d,%d", &a, &b, &c);
printf("a=%d b=%d c=%d\n",a,b,c);
v[0] = a;
v[1] = b;
v[2] = c;
for (j = 0; j <= n - 1; j++) {
x = j;
for (k = 0; k <= n - 1; k++) {
e = v[x];
printf("%d ", e);
x++;
if (x >= n) x = 0;
}
printf("\n");
}
return 0;
}
No.3
- 回答日時:
>2.a,b,cは同じ値をいれては、いけません。
>▶︎これはラテン方陣の決まりか何かでしょうか?
https://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%86 …
上記URLのラテン方陣の説明と例が書いてあります。
a,b,cは全て異なるあたいでなければいけません。
No.2
- 回答日時:
No1です。
カンマ区切りで入力したい場合は、
scanf("%d,%d,%d", &a, &b, &c);
としてください。
そうすると
1,2,3
を入力すると
a=1,b=2,c=3となります。
わあ!本当だ!できました!!!
a,b,c(カンマ)で入力したいなら%d%d%dではなく%d,%d,%dに、
逆に%d%d%dでコンパイルした時はカンマではなく半角スペースに!以後気をつけます。。
3.入力された値を印字して、正しく入力されたかどうかを確認する
▶︎これ大事ですね!カンマや半角スペースの間違った方で入力してしまっていたときは予想外の値になっていました、、ありがとうございます!
2.a,b,cは同じ値をいれては、いけません。
▶︎これはラテン方陣の決まりか何かでしょうか?たくさん質問してしまい申し訳ございません。。(>_<)
No.1
- 回答日時:
とりあえず、気が付いた点を3つほど述べます。
1.入力データは、カンマで区切るのではなく、半角のスペースで区切ります。
例
誤 1,2,3
正 1 2 3
2.a,b,cは同じ値をいれては、いけません。
誤 1 1 1
正 1 2 3
3.入力された値を印字して、正しく入力されたかどうかを
確認すると良いです。
scanf("%d%d%d", &a, &b, &c);の次の行に
printf("a=%d b=%d c=%d\n",a,b,c);
を追加してください。
そうすると、a,b,cの値がどのようになっているかが判ります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TCP/IP: 非ソケットに対するソ...
-
プログラムがエラーが出る原因
-
Linux Ubuntu18.04.3でTcoipに...
-
Expression: nptr != NULL
-
C言語 コンパイルエラー(文字...
-
c言語プログラミングで初項を1....
-
プログラミングが分かりません。
-
c言語を使用しています。英語小...
-
クレーンでのCFブレーキとな...
-
互いに素と負の数
-
数学:図形問題について 先日、...
-
R-C直列回路にLを接続した時の...
-
Audacityのマイク音量
-
オシロスコープからパソコンに...
-
中3数学の問題です。 2のウ、エ...
-
ステップ応答の周波数特性によ...
-
オシロの波形から発振周波数を...
-
音声波形を表示する
-
油圧装置のエアーブリーザーに...
-
インパルス応答と入力信号から...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングが分かりません。
-
C言語のエラーについて
-
'printf':識別子が見つかりませ...
-
3×3のラテン方陣をつくるプログ...
-
プログラムがエラーが出る原因
-
TCP/IP: 非ソケットに対するソ...
-
Expression: nptr != NULL
-
加減剰余のオーバーフローについて
-
getch / putch用のヘッダ
-
コマンドライン引数について。
-
C言語のソースコードについて教...
-
C言語初心者です。計算がうまく...
-
C言語 コンパイルエラー(文字...
-
C言語 遺伝的アルゴリズムでの...
-
C言語で自作ヘッダーを作ったの...
-
リターンキー又は、スペースキ...
-
以下の問題のプログラムを教え...
-
c言語入門
-
C/C++ return文で関数の返却値...
-
c言語プログラミングで初項を1....
おすすめ情報
これです。