|
发表于 2019-10-23 00:37:05
|
显示全部楼层
本帖最后由 bin554385863 于 2019-10-23 05:40 编辑
你的代码就有问题;
- #include <iostream>
- void func()
- {
- int r = 1, num = 1, t = 1;
- while (1)
- {
- scanf("%d", &num);
- if (num == 0)
- {
- printf("END");
- break;
- }
- else
- {
- t = abs(num);//方便判定负数
- while (t > 9)
- {
- t /= 10;
- r++;
- }
- printf("%d是%d位数\n", num, r);
- printf("\n");
- r = 1;
- }
- }
- }
- int main(int argc, char const *argv[])
- {
- func();
- return 0;
- }
复制代码
---------------------------------------------------------------------------------
Microsoft Windows [版本 10.0.16299.1087]
(c) 2017 Microsoft Corporation。保留所有权利。
E:\Users\86184\Documents\Code>c:\Users\86184\.vscode\extensions\ms-vscode.cpptools-0.26.0\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-1zrm3vbd.ika --stdout=Microsoft-MIEngine-Out-3bkz5ol4.jpx --stderr=Microsoft-MIEngine-Error-f1rupsbb.cme --pid=Microsoft-MIEngine-Pid-soltd4jy.po5 "--dbgExe=E:\My Program\MinGW\bin\gdb.exe" --interpreter=mi
1
1是1位数
123
123是3位数
987654
987654是6位数
0
END
-------------------------------------------------
时间太晚,所以数据大小边界的判定没写,大体就这样 |
|