掲示板利用宣言

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

 私は

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

掲示板2

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

No.28823

インクリメントについて
投稿者---haji(2006/11/12 21:21:20)


#include<stdio.h>
int main(void)
{
int data=3,ans;
ans=data++;
printf("data = %d\nans = %d%n",data,ans);
return 0;
}

初投稿です。よろしくお願いします。
上記のプログラミングを実行したところ
data = 4
nans = 3
と、出てほしい結果と逆の結果になってしまいます。
data = 3
nans = 4
と表示するにはどうすればいいですか?
解る方回答をお願いします。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:インクリメントについて 28825 Mook 2006/11/12 21:50:30
<子記事> Re:インクリメントについて 28826 ドルドル 2006/11/12 22:10:30
<子記事> Re:インクリメントについて 28829 haji 2006/11/12 22:25:24
<子記事> Re:インクリメントについて 28831 haji 2006/11/12 22:39:33


No.28825

Re:インクリメントについて
投稿者---Mook(2006/11/12 21:50:30)


プログラムと実行結果は整合していると思いますが。

期待の結果を得るためのプログラムは
asn = data + 1;
ではないですか。

インクリメントについてもう一度再確認した方が良いかと思います。


この投稿にコメントする

削除パスワード

No.28826

Re:インクリメントについて
投稿者---ドルドル(2006/11/12 22:10:30)


インクリメントに ++a とa++ みたいに2種類あることをご存知でしょうか?? 例えば
 int x1;
x1 = a++;
これは "x1" に"a"を代入してから "a"をインクリメントします。一方
 int x1;
x1 = ++a;
とすると"a"をインクリメントしてから "x1" に代入します。
なので ans にdataを代入するところを変更すればいけるはずです。



この投稿にコメントする

削除パスワード

No.28827

Re:インクリメントについて
投稿者---RAPT(2006/11/12 22:16:51)


補足
> ans=data++;
これを
ans=++data;
こうしたところで、結果は、ans == data となる。



この投稿にコメントする

削除パスワード

No.28834

Re:インクリメントについて
投稿者---かずま(2006/11/13 10:52:41)


> x1 = a++;
> これは "x1" に"a"を代入してから "a"をインクリメントします。一方

x1 への代入と、a のインクリメントの順序は決まっていません。
副作用完了点が同じだからです。

a++ という式の結果は a の値です。オブジェクト a から値を取り出した
あとすぐにオブジェクト a をインクリメントして、そのあと最初に取り
出した値を x1 に代入してもよいのです。


この投稿にコメントする

削除パスワード

No.28829

Re:インクリメントについて
投稿者---haji(2006/11/12 22:25:24)


皆さん回答ありがとうございます。
どうやら下記の
> int data=3,ans;
のところが悪かったみたいです。
int data,ans;
data=3;
ans=data++;
としたところちゃんとできました。
後HTML変換ツールを使わなかったり環境を書かないですいませんでした。
また困ったことがあったら皆さんよろしくお願いします。


この投稿にコメントする

削除パスワード

No.28831

Re:インクリメントについて
投稿者---haji(2006/11/12 22:39:33)


と思ったらできませんでした。(汗
素直にans=data+1にします。
本当に失礼しました。



この投稿にコメントする

削除パスワード

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