掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.25981

あれ?
投稿者---初心者(2006/02/04 01:39:09)


#include<stdio.h>
  
struct rectangle {
  int x;
  int y;
  int width;
  int height;
};

void contain(int a, int b, struct rectangle r)
{
  if(10 <= a <= 80 || 10 <= b <= 60)
    printf("(%d,%d)\n",a, b);
  else
    printf("Error\n");
}

int main()
{
  int x, y;
  struct rectangle r = {10, 60, 70, 50};
  printf("Point (x,y): ");
  scanf("(%d,%d)", &x, &y);
  contain(x, y, r);
  return 0;
}


なんで(0,0)を入力しても(0,0)がでんの?
範囲ないじゃないよね?


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> あれ? 25982 初心者 2006/02/04 01:40:41
<子記事> Re:あれ? 25983 Blue 2006/02/04 01:56:51


No.25982

あれ?
投稿者---初心者(2006/02/04 01:40:41)


><pre>#include<stdio.h>

struct rectangle {
int x;
int y;
int width;
int height;
};

void contain(int a, int b, struct rectangle r)
{
if(10 <= a <= 80 || 10 <= b <= 60)
printf("(%d,%d)\n",a, b);
else
printf("Error\n");
}

int main()
{
int x, y;
struct rectangle r = {10, 60, 70, 50};
printf("Point (x,y): ");
scanf("(%d,%d)", &x, &y);
contain(x, y, r);
return 0;
}
</pre>
>
>なんで(0,0)を入力しても(0,0)がでんの?
>範囲ないじゃないよね?

(注意)確認のため値が与えてあるのを注意。12行目


この投稿にコメントする

削除パスワード

No.25983

Re:あれ?
投稿者---Blue(2006/02/04 01:56:51)


> if(10 <= a <= 80 || 10 <= b <= 60)
範囲指定の場合

if ( ( ( 10 >= a ) && ( a <= 80 ) ) || ( ( 10 <= b ) && ( b <= 60 ) ) )
としてください。



この投稿にコメントする

削除パスワード

No.25984

Re:あれ?
投稿者---Blue(2006/02/04 02:07:56)


ちなみに比較演算子の優先順位は、
http://www.u-gakugei.ac.jp/~miyadera/LECTURE/ElecBook2/ptech04.htm
を参考にしてみてください。

> if(10 <= a <= 80 || 10 <= b <= 60)
の場合、a = 0 で b = 0 の場合

1. 10 <= a を評価            偽(0)
2. 1の結果 <= 80 を評価      真
3. 10 <= b を評価            偽(0)
4. 3の結果 <= 60             真
5. 2の結果 || 4の結果 を評価 真

で、if文の条件式は真になるので、
> printf("(%d,%d)\n",a, b);


最後に、
> 題名と投稿者名は具体的に書きます。
を守ってください。
「初心者」や「名無し」や「お願いします」等のHNは良くないものの代表です。
使わないようにしましょう。



この投稿にコメントする

削除パスワード

No.25985

Re:あれ?
投稿者---Blue(2006/02/04 02:23:38)


なんかチガウっぽい。

> 1. 10 <= a を評価            偽(0)
> 2. 1の結果 <= 80 を評価      真
> 3. 10 <= b を評価            偽(0)
> 4. 3の結果 <= 60             真
> 5. 2の結果 || 4の結果 を評価 真

この場合って、2 の結果が 真 から、 論理演算子が || であるとき
3,4 は評価されないですね。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧