空き番号判定がよくわからないです。
順番を変える処理をする。
順番は1から5まで。
変えようとする番号(s_no)がなければそのまま変えたらいいですが、
同じ番号がすである場合
下から5まで空き番を探す
空き番がある→ s_noと同じ番号は空き番未満まで1ずつ増やす。
空き番がない(上に空き番が生じる、s_noと同じ番号)→ s_noと同じ番号は空き番まで1ずつ減らす。
空き番をどう判定するかわからないですし、処理の流れもどうすればいいか悩んでます。
アドバイスお願いします。
説明が下手なので画像を添付しました。(パターン例)
int AAA = 5;
int s_no;
int i;
int data[5];
for(i=0;i<AAA;i++){
/* 空き番判定 */
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>空き番をどう判定するかわからないですし、
例えば3が空き番かどうか判定したいなら、data[0]~data[4]の中に3があるかどうかを確認すればいい。
配列を使えばもっと効率よく判定できるけど5個程度なら大差ないでしょう。
>処理の流れもどうすればいいか悩んでます。
頭の中や手作業ではできているのだろうから、その通りの流れにすればいいだけ。
いきなりコードを書くのは難しいでしょうから、まずは、いろいろなパターンを想定して日本語で流れを書いてみてはいかがですか。
といっても、#1さんへの補足に書かれている内容でほぼ全パターンを網羅していると思いますので、あとはそれをまとめるだけです。
No.1
- 回答日時:
その「空き番」というのが何を意味するか、まったくわかりません。
s_noがそれぞれの値のとき、なぜ添付された表のように選択するのか、
2→s_no=4 とか 3→s_no=1とかがどんな規則なのかよくわかりません。
何がやりたいのかがわからないので、答えることができません。
とりあえずは
・「空き番」って何なのでしょう?
・s_noの「変えようとする番号」とは、何から何へ変えようとするものなのでしょう?
・やりたい事はなんなのでしょう?細かい動作ではなく、全体としてどんなものか、
例えば, {1,2,3,4,5}が「空き番」なら、s_no=3とは
「3番目」なのか「3という値」なのか、「先頭を3にする」の意味なのか。それ以外なのか
特定の番号があるかどうか調べるには
(1)全体が収まる配列を用意して
a[x]== 0なら未使用、a[x]==1なら使用中、などとする
(2)「使用中」の番号を配列に入れておいて、ある番号xが配列の中にあるかどうか調べる
for(i=0.i<aの要素数;++i) { if( x == a[i] ) {使用中;}else{未使用} }
等が常套手段です。
この回答への補足
まず、御回答ありがとうございます。
空き番は使われてない番号です。
s_noは新しい表示しようとする番号です。
s_no=3 は 3とういう値です。
やりたいことは順番を変えること。
添付した画像について説明なんですけど、
まず、5つの例を示しました。
1番目の例は順番2を4(s_no)に変更した。
4(s_no)から5まで値が全部使われた(空き番なし)
2が使われてない番号になる
4から3一つずつ減る
2番目の例も順番2を4に変更した。
4(s_no)から5まで
使われてない(空き番)5がある。
元の4が5になる。
3番名の例は4を2に変更した。
2(s_no)から5まで使われてない番号4(空き番)がある。
元の2が3になり、元の3が4になる。
4番目は2を3に変更した。
3(s_no)から5まで使われてない番号4(空き番)がある。
元の3が4になる
5番目は3を1に変更した。
1(s_no)から5まで使われてない番号3(空き番)がある。
元の1が2になり、元の2が3になる。
すみません。説明が不十分でした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- Excel(エクセル) Excelで質問です! 現在マクロを勉強中の初心者です。 以下のような表から、会社名が空白のもの以外 2 2022/06/14 12:16
- Visual Basic(VBA) セルに抜けた番号の代わりに空白を挿入する 4 2023/04/10 20:29
- 会計ソフト・業務用ソフト VBA 記録簿の行間を空けないコードを教えて欲しい。 5 2023/07/10 19:29
- その他(生活家電) 左詰めなの右なの 5 2022/06/19 09:31
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- 飛行機・空港 7月に沖縄に行くのですが航空券の予約を私ではなく、 一緒に行く人が予約してくれました。 LINEでエ 3 2022/06/28 12:24
- Excel(エクセル) エクセルの表でダブりを解消する方法を、教えてください。 5 2023/04/12 12:11
- Java Java 配列<選挙> 4 2023/07/31 15:07
- Excel(エクセル) マクロ 2行ごとの並び替えについて 4 2022/12/14 12:27
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで配列の計算
-
パソコンキーボードで時分秒を...
-
VB.net 引数で配列変数を渡す際...
-
IF関数でEmpty値を設定する方法。
-
動的配列が存在(要素が有る)か...
-
ラジオボタンのチェックをEnter...
-
遅延バインディングを使用でき...
-
変数を動的に作るには?
-
C言語 配列からランダムに素数...
-
配列プロパティをREDIMする方法...
-
等間隔にベクトルを作成。(MAL...
-
VBで作った乱数を一度も重複さ...
-
EXCEL VBA で、0から?1から?
-
10進数を4桁のバイト配列に格納...
-
配列の要素数を超えた参照のコ...
-
複数のテキストボックスに同じ...
-
C言語 重複しない4ケタの乱数...
-
ランダムに絵を切り替えたい
-
Visual C++ でコントロールを...
-
コントロール配列の多次元配列
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで配列の計算
-
パソコンキーボードで時分秒を...
-
EXCEL VBA で、0から?1から?
-
IF関数でEmpty値を設定する方法。
-
変数を動的に作るには?
-
動的配列が存在(要素が有る)か...
-
C言語 重複しない4ケタの乱数...
-
VB.net 引数で配列変数を渡す際...
-
VBで作った乱数を一度も重複さ...
-
複数のテキストボックスに同じ...
-
VBでbyte配列型のインスタンス...
-
C#の質問
-
For文と配列
-
遅延バインディングを使用でき...
-
重複なしでランダムに画像を表...
-
配列の要素数を超えた参照のコ...
-
このプログラミングの問題を教...
-
Visual C++ でコントロールを...
-
ジャグ配列とは
-
Excel VBAで配列の途中から(X)M...
おすすめ情報