1

对于赋值,它的一小部分表示整数只能是五位数字。如果输入一个整数,例如 1234567,那么结果应该是 34567。

有什么办法可以直接用scanf设置吗?当然,将它设置为只读取五个整数很容易,但它不会读取最右边的五个。是否可以为此设置标志或其他东西,还是我必须在之后做一些骇人听闻的循环?

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 回答