求助!求一个数有几位
#include <stdio.h>int main()
{
int f,i=0;
printf("给出一个不多于5位的正整数:");
scanf("%d",&f);
while(f<=5)
{
i+=1;
i++;
}
printf("这是一个%d位数",i);
return 0;
} 不管怎么输入都是0位数 求大神解决 谢谢!!
#include <stdio.h>
int main()
{
int f , i ;
printf("给出一个不多于5位的正整数:") ;
scanf("%d" , & f) ;
for(i = 0 ; f ; i ++ , f /= 10) ;
printf("这是一个%d位数" , i) ;
}
jackz007 发表于 2019-10-22 20:08
可是for语句还没有学....能不能用别的语句完成呀?谢谢你! 本帖最后由 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
-------------------------------------------------
时间太晚,所以数据大小边界的判定没写,大体就这样 while(f<=5)你循环条件都错了,你这意思是f小等5不是小于5位数啊 bin554385863 发表于 2019-10-23 00:37
你的代码就有问题;
------------------------------------------------------------------------------- ...
谢谢你!但是还没学void func() 有点看不懂嗷 wjp 发表于 2019-10-24 04:35
while(f
那应该加点啥吗....在前面? jackz007 发表于 2019-10-22 20:08
学会了 好简便噢
页:
[1]