無題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
初心者ですいません

無題

#1

投稿記事 by 初心者ですいません » 15年前

最大公約数の計算を"gcd"なしで作りたいのですが、( )の中身がわかりません。
教えてください。

#include <stdio.h>
void main(void)
{
long a, b, r;
printf("a = "); scanf("%ld", &a); /* aの入力 */
printf("b = "); scanf("%ld", &b); /* bの入力 */
if (a < b) {
( ) ; /* aとbの交換 */
}
if (b != 0L) {
while ( ) { /* 余りが0でない間は繰り返し */
r =( ); /* 余りをrに代入 */
a = b; /* 除数を次の被除数にする */
b = r; /* 余りを次の除数にする */
}
}
printf("GCD(a,b) = %ld\n", b);
}

たかぎ

Re:無題

#2

投稿記事 by たかぎ » 15年前

まずはお約束ですので...
[flash 600,100]http://dixq.net/flash/kiyaku4.swf[/flash]

softya

Re:無題

#3

投稿記事 by softya » 15年前

質問に答えるために幾つかお願いがあります。スムーズに回答するために必要な事柄ですのでぜひお願いします。
 ・ 使用している環境やコンパイラ(VisualC++2008ExpressEdition等)、自分が習っている言語の規格(CにもC89やC99など幾つか規格があります)を教えて下さい。
 ・ 自分はどこまで理解しているのか、学校ではどこまで習ったのか明確に願います。
 ・ 自分が書いたソースプログラムはどこからどこまでなのか教えて下さい。
 ・ ソースコードは< pre>と< /pre>のタグで囲んで下さい。
 詳しくはこの掲示板の使い方をご覧ください→ http://dixq.net/board/board.html

たかぎ

Re:無題

#4

投稿記事 by たかぎ » 15年前

これは難度が高いですね。
現時点の情報だけでは、未定義の動作を取り除くことができそうにありません。

むん

Re:無題

#5

投稿記事 by むん » 15年前

aとbの交換くらいはさすがになにも考えてくともわかると思います。
whileもあまりを計算する変数は一つしかないので
それも考える必要もなくすぐにわかると思います。

問題の余りを求めるrはちょっと調べればわかると思いますが
ユークリッドの互除法で求めればよいのではないのでしょうか?

Dixq (管理人)

Re:無題

#6

投稿記事 by Dixq (管理人) » 15年前

とりあえず解るところからやってみませんか?

> aとbの交換くらいはさすがになにも考えてくともわかると思います。

この辺からやってみましょう。
まず、両手にAとBのそれぞれ大きなケーキを持っているとしましょう。
ケーキは大きいので片手に二つ持てません。
クリームがつくので、体のどこかで支えて持ち変えるとかも出来ません。
その状態で、AとBのケーキの持ち手を変えるにはどうしたらいいでしょう?

ある答えが出てくると思います。
それをプログラムで表現するとどうなるでしょう?


また、お名前が一度しか使わなそうなお名前であるように感じられるのですが・・。
同じ名前を今後も使い続けて頂くようお願いしていますのでよろしくお願いします。

たこ

22.キャラを4方向に歩かせる。

#7

投稿記事 by たこ » 15年前

こんにちは。すみませんがまた質問させてもらいます^^;
「ch.img=image[(ch.x%32+ch.y%32)/8 + ch.muki*4]; 」の部分の
ch.mukiに4をかける意味がよくわからないです…
試しにはずしてやってみるとおかしい動きになりましたけど…
向きが4方向あるからでしょうか?

fatens

Re:22.キャラを4方向に歩かせる。

#8

投稿記事 by fatens » 15年前

各方向のアニメのコマ数が4だからだと思います。
ようするに縦軸の決定です。
「17. 画像を分割して読み込む」を見て考えると分かりやすいかと。

kazuoni

Re:22.キャラを4方向に歩かせる。

#9

投稿記事 by kazuoni » 15年前

情報が不足しているので、補足をお願いします。

・環境は何か
・どのような画像か
・読み込みはどのように行っているか

> ch.mukiに4をかける意味がよくわからないです…
ゲームプログラミングの館では画像を数字で書くと
0  1  2  3  …(a)
 4  5  6  7  …(b)
 8  9 10 11  …(c)
12 13 14 15  …(d)
のようになっているので、


muki=0のときは(a)の向き0*4+x=x(0≦x≦3)
muki=1のときは(b)の向き1*4+x=4+x(0≦x≦3)

...


のようになっています。
これを言い換えると、
muki=0のとき画像0~3
muki=1のとき画像4~7

...

のようになります。

sizuma

Re:22.キャラを4方向に歩かせる。

#10

投稿記事 by sizuma » 15年前

同じようなトピックがちょっと前にあったので、こちらも参考になるでしょう。
http://www.play21.jp/board/formz.cgi?ac ... &rln=44929
まぁfatensさんとkazuoniさんの書いてあるとおりなんで、それで分かればスルーしてください。 画像

たこ

Re:22.キャラを4方向に歩かせる。

#11

投稿記事 by たこ » 15年前

返事送れて申し訳ございません><
縦軸のせっていだったのですね。
わかりました。ありがとうございます。
--------環境--------
コンパイラ Microsoft Visual C++ 2008 Express Edition
OS Windows7
です。

閉鎖

“C言語何でも質問掲示板” へ戻る