掲示板利用宣言

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

 私は

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

掲示板2

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

No.28797

if文
投稿者---電卓(2006/11/10 20:14:02)


scanf ( "%d", target ) ;

で値をえて、




if( target < 1 || 9 < target )

if( target < 1 && 9 < target )


どう違いますか?


詳しく教えてください。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:if文 28798 たかぎ 2006/11/10 20:31:20
<子記事> Re:if文 28800 かずま 2006/11/10 22:05:18
<子記事> Re:if文 28809 おでん 2006/11/12 14:03:15


No.28798

Re:if文
投稿者---たかぎ(2006/11/10 20:31:20)
http://takagi.in/


>scanf ( "%d", target ) ;

を見る限り、targetの型はint*ですね。

>if( target < 1 || 9 < target )
>と
>if( target < 1 && 9 < target )
>
>
>どう違いますか?
>
>
>詳しく教えてください。

ポインタと整数(空ポインタ定数式を除く)の比較はできません。
無理矢理やったとしても、未定義の動作になるでしょうから、コンパイルエラーになるのか、それらしく振る舞うのか、あるいはマニュアルに動作が明記されているのか、実際に使っている処理系で調べてみてくださいとしか言えません。



この投稿にコメントする

削除パスワード

No.28800

Re:if文
投稿者---かずま(2006/11/10 22:05:18)


C:\tmp>type a.c
#include <stdio.h>

int main(void)
{
    int target = (int)⌖

    scanf("%d", target);
    if (target < 1 || 9 < target)
        puts("|| true");
    else
        puts("|| false");
    if (target < 1 && 9 < target)
        puts("&& true");
    else
        puts("&& false");
    return 0;
}

C:\tmp>gcc a.c

C:\tmp>a
0
|| true
&& false

C:\tmp>a
5
|| false
&& false

C:\tmp>a
10
|| true
&& false

C:\tmp>

冗談です。本気にしないでください。


この投稿にコメントする

削除パスワード

No.28809

Re:if文
投稿者---おでん(2006/11/12 14:03:15)


if文に付いてだけ・・・

>if( target < 1 || 9 < target )

targetが1より小さいか、または9よりも大きい時に真になる

>と
>if( target < 1 && 9 < target )
>

1より小さく、かつ9よりも大きい数は存在しないので真になる事はない。

>
>どう違いますか?
>


この投稿にコメントする

削除パスワード

No.28832

Re:if文
投稿者---電卓(2006/11/12 23:17:24)


みなさんいろいろ教えていただきありがとうございました。


この投稿にコメントする

削除パスワード

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