検索結果 10 件

by BlueRose
6年前
フォーラム: C言語何でも質問掲示板
トピック: 配列の動的追加
返信数: 1
閲覧数: 1617

配列の動的追加

以下の配列 int list[10] = {1, 0, 6}; の残りの要素(7つ)に新たに入力していく要素を動的に追加したいのですが、以下のプログラムからどのように変更すれば良いでしょうか。 要素数0から次々追加させることはできますが、途中の追加ができません。 以下のプログラムは、ひとまず既存の配列の要素を表示させるデバッグ仕様となっています。 #include <stdio.h> #include <stdlib.h> /* セルの定義 */ struct Cell{ struct Cell *prev; //先頭のセル struct Cell *next; //次のセル int data...
by BlueRose
6年前
フォーラム: C言語何でも質問掲示板
トピック: ハノイの塔
返信数: 12
閲覧数: 4980

Re: ハノイの塔

void hanoi(int n, int from, int to){ int other = 6 - from - to; //from, to以外の棒 if(n == 0)return; if(n > 1) hanoi(n-1, from, other); printf("棒 %d から棒 %d へ移動\n", from, to); if(n > 1) hanoi(n-1, other, to); } 度重なる返答ありがとうございました。 無事に解決しました。 円盤の枚数 = 3 棒 1 から棒 3 へ移動 棒 1 から棒 2 へ移動 棒 3 から棒 2 へ移動 棒 1 から棒 3 へ...
by BlueRose
6年前
フォーラム: C言語何でも質問掲示板
トピック: ハノイの塔
返信数: 12
閲覧数: 4980

Re: ハノイの塔

/* ハノイの塔を解く関数 */ void hanoi(int n, int from, int to){ int other = 6 - from - to; //from, to以外の棒 if(n == 0)return; if(n > 1) hanoi(n-1, from, other); if(n > 1) hanoi(1, from, to); printf("棒 %d から棒 %d へ移動\n", from, to); if(n > 1) hanoi(n-1, other, to); } 実行すると 円盤の枚数 = 3 棒 1 から棒 3 へ移動 棒 1 から棒 2 へ移動 棒 ...
by BlueRose
6年前
フォーラム: C言語何でも質問掲示板
トピック: ハノイの塔
返信数: 12
閲覧数: 4980

Re: ハノイの塔

/* ハノイの塔を解く関数 */ void hanoi(int k, int from, int to){ int other = 6 - from - to; //from, to以外の棒 if(k == 0){ return; }else{ hanoi(k-1, from, other); hanoi(1, from, to); hanoi(k-1, other, to); printf("棒 %d から棒 %d へ移動\n", from, to);//(1) } } (1)のprintf文はどこに挿入すれば良いでしょうか。 実行すると 円盤の枚数 = 3 Segmentation fa...
by BlueRose
6年前
フォーラム: C言語何でも質問掲示板
トピック: ハノイの塔
返信数: 12
閲覧数: 4980

Re: ハノイの塔

コード:

/* ハノイの塔を解く関数 */
void hanoi(int k, int from, int to){
    int other = 6 - from - to; //from, to以外の棒

    if(k == 0){
      return;
    }else{
      hanoi(k-1, from, other);
      printf("棒 %d から棒 %d へ移動\n", from, to);
    }
}
・n = 3 の時の実行結果

コード:

円盤の枚数 = 3
棒 1 から棒 3 へ移動
棒 1 から棒 2 へ移動
棒 1 から棒 3 へ移動
by BlueRose
6年前
フォーラム: C言語何でも質問掲示板
トピック: ハノイの塔
返信数: 12
閲覧数: 4980

Re: ハノイの塔

一通り修正しました。コンパイラはc言語です。環境はMacOs10.14.1です。 #include <stdio.h> /* プロトタイプ宣言 */ void hanoi(int, int, int); /* メイン処理 */ int main(){ int n; //円盤の枚数 printf("円盤の枚数 = "); scanf("%d", &n); hanoi(n, 1, 3); return 0; } /* ハノイの塔を解く関数 */ void hanoi(int k, int from, int to){ int other = 6 - from - to; //from, to以外の...
by BlueRose
6年前
フォーラム: C言語何でも質問掲示板
トピック: ハノイの塔
返信数: 12
閲覧数: 4980

ハノイの塔

 n枚の円盤からなるハノイの塔のパズルを解くプログラムを再帰的プログラムで尚且つ円盤を移動する処理関数(honoi関数とする)を引数3つ(上からk枚の円盤, 始めに円盤が挿さっている棒from, 次の移動先の棒to)で実現するやり方のヒントを教えて下さい。 以下のコードは途中まで出来たものです。円盤の枚数は動的に当てはめていくので、棒from, toをどう定義していけばよいのか...。 #include <stdio.h> /* プロトタイプ宣言 */ void hanoi(int, int, int); /* メイン処理 */ int main(){ int n; //円盤の枚数 int f...
by BlueRose
6年前
フォーラム: C言語何でも質問掲示板
トピック: [c言語 Handy Graphic] クリック処理について
返信数: 5
閲覧数: 6195

Re: [c言語 Handy Graphic] クリック処理について

動いているものに対するクリック処理はどのようにすれば良いでしょうか。
円の面積を求めて、その範囲内を条件として処理を行うと考えて良いのでしょうか。
by BlueRose
6年前
フォーラム: C言語何でも質問掲示板
トピック: [c言語 Handy Graphic] クリック処理について
返信数: 5
閲覧数: 6195

Re: [c言語 Handy Graphic] クリック処理について

指摘していただいて箇所を修正しました。 しかし、やはりクリックするとエラーが発生してしまいます。 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <handy.h> /* ウィンドウ画面サイズ */ #define WindowX 800 #define WindowY 600 /* 色球を動かす範囲(プレイエリア) */ #define AreaX 400 #define AreaY 200 /* 爆弾サイズ */ #define BombX 600.0 #define BombY 400.0 /* 爆弾とプ...
by BlueRose
6年前
フォーラム: C言語何でも質問掲示板
トピック: [c言語 Handy Graphic] クリック処理について
返信数: 5
閲覧数: 6195

[c言語 Handy Graphic] クリック処理について

はじめまして、c言語およびプログラミングを学び始めて1年近くになるの者です。 現在、 [時限爆弾] ・赤、緑、青色の3つの色球がそれぞれ違う速度で決まった範囲内で移動しており、それらはあらかじめ「起爆」、「解除」、「増殖」の役割を持っている。色球は壁に跳ね返るごとに、赤→緑→青→赤の順に変色していく。3つの役割は球自体にではなく、各色にランダムに割り当てられる。壁に跳ね返ると球のもつ役割も変更される。これらをすべてクリックによって選択していき「解除」の色球を選択するとクリアとなる。「起爆」の色球を選択すると、ゲームオーバーとなり、時間以内に「解除」を選択できなくても同じである。「増殖」を選沢す...

詳細検索ページへ移動する