1

割り当ての場合、そのごく一部は、整数の長さが5桁でなければならないことを示しています。1234567などの整数を入力すると、結果は34567になります。

scanfでこれを直接設定する方法はありますか?もちろん、5つの整数のみを読み取るように設定するのは簡単ですが、右端の5つだけを読み取ることはできません。これに設定できるフラグなどはありますか、それとも後でハックループを実行する必要がありますか?

4

3 に答える 3

1

mod演算子を使用できます。int m = enteredNumber % 100000;これにより、番号が切り捨てられます。

ここで..私はそれを試しました。

#include <math.h>

int main(int argc, char** argv)
{
  char* number = "12334567";

  int numberAsInt = atoi(number);

  int shorterNumber = numberAsInt % 100000;

  printf("The number is %d\n", shorterNumber);

  return 0;
}
于 2012-09-11T04:18:07.470 に答える
0

多分このように

char* number = "1234567";
int val = 0;
int len = 0;
int ofset = 0;

len = strlen(number);
if ( len > 5) {
    ofset = len - 5;
}
sscanf(number + ofset, "%d", &val);
printf("result: %d", val);
于 2012-09-11T06:05:11.347 に答える
0

右端の桁を持つような事前定義された数量詞はありません。必要な出力を表示するために、独自のループを作成する必要があります。

于 2012-09-11T08:00:57.277 に答える