2
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
  int num, num2;
  num = 33;
  do
  {
      cout <<"\n" <<num-3;

}     
  while (num >=3);     
  system("PAUSE");
  return EXIT_SUCCESS;  
}

上記をコーディングしましたが、実行すると30が出力され、値が3になりません。ループでこれを実行するにはどうすればよいですか。num--が機能することはわかっていますが、値が1つ減るだけです。私はC++を初めて使用し、これらのことを理解しようとしています。

ありがとう!:)

//ありがとうございます編集しますnum=num-3で動作します、num-=3も動作します

4

2 に答える 2

2

この行:

cout <<"\n" <<num-3;

numの値は変更されません。num-3の値を出力するだけです。実際に値を変更するには、次のような別の行が必要です。

num -= 3;
于 2013-03-06T05:30:30.843 に答える
1

提案どおりに実行し、ループの反復ごとに3(または何でも)を減算しても、あまり効果がない場合があります。問題はかなり単純です。出力を印刷できるよりもはるかに速く変数を更新する可能性が高いため、12個以上の値がすべて本質的に同時に表示されるのを簡単に確認できます。

これを解決するには、通常、反復の合間に短時間一時停止する必要があるため、次の値が出力される前に1つの値が(おそらく)表示されます。に基づいて、system("pause");あなたがWindowsを実行していると推測します。その場合、次のようなコードはあなたの好みに少し合うかもしれません。

#include <cstdlib>
#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[])
{
    int num = 33;
    do
    {
        cout <<"    \r" << (num-=3);
        Sleep(100);
    }     
    while (num >=3);     
    return EXIT_SUCCESS;  
}
于 2013-03-06T05:59:26.347 に答える