用microsoft visual C++6.0求输入一个正整数,求出数是几位数。我编写的程序无法执行,求原因和正解,谢谢

'#include<iostream>#include<math.h>usingnamespacestd;intmain(){unsignedintx,n;cout<<"... '#include<iostream>

#include<math.h>

using namespace std;

int main()

{

unsigned
int x,n;

cout<<"请输入一个正整数:";

cin>>x;

while(x>0)

{

n=1;

if(x>=pow(10,n-1)&&x<pow(10,n))

cout<<"正整数的位数是:"<<n<<endl;

else

n=n+1;

continue;

}

}
展开
 我来答
aiyongyyy
2012-11-26 · TA获得超过148个赞
知道小有建树答主
回答量:189
采纳率:100%
帮助的人:132万
展开全部
n=1;

while(x>0)
{

if(x>=pow(10,n-1)&&x<pow(10,n))
cout<<"正整数的位数是:"<<n<<endl;
else
n=n+1;
continue;
}

n=1 写在while循环的外面, 不然的话每次while循环n都赋值成1, 每次都是一样的
MeanSift
2012-11-26 · 超过33用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:80.1万
展开全部
没有太理解你这个代码的意思,while循环没有结束条件,会一直运行下去。
不在这个基础上改了,直接写了一个,不知道是不是满足你这个要求。
int main()
{
int iInNum=0, iN=1;
cout << "Please input a integer :";
cin >> iInNum;
if(iInNum <= 0)
{
cout << "Error ! Please input a integer";
}
while (iInNum > 10)
{
iInNum = iInNum / 10;
iN ++;
}
cout << "the result is: " << iN << endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ayunlan
2012-11-26 · TA获得超过149个赞
知道答主
回答量:47
采纳率:0%
帮助的人:44.3万
展开全部
#include<stdio.h>
main()
{
int i;int x=1,n=0;
printf("请输入一个正整数:");
scanf("%d",&i);
whlie(i!=0)
{
i=i/10;
n++;
}
printf("这个正整数的位数为%d",n);
}
用C 帮你写了一个,你可以自己跟踪一下看看,N代表了这个数字是几位数。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式