本帖最后由 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
-------------------------------------------------
时间太晚,所以数据大小边界的判定没写,大体就这样 |