1

我是 C++ 的新手 我正在尝试制作一个不计算输入中数字的程序 这是我的代码

#include "stdafx.h"
#include <iostream>

int i, n, r, t,  large;
float f;
int main() {
    do {
        using namespace  std;
        cout<<"Enter a Number"<<endl;
        cin>>n;

        do {
            f=n/10;
            i=0;
            t=i + 1;
        } while (f > 1);

        cout<<"No of Digits = ";
        cout<<t<<endl;

        cout<<"Do u wish to continue"<<endl;
        cin>>r;
    }
    while (r!='y');
}

如果我添加一个数字,这很好用 否 这是我添加单个数字时的输出 否

个位数的输出没有

但是,当我添加超过 1 个数字时,它会卡住并且不会向前移动,这是当我添加超过 1 个数字时的输出

多于 1 位的输出 否

有人可以帮帮我吗

4

2 回答 2

4

你有一个无限循环

do {
    f=n/10;
    i=0;
    t=i + 1;
} while (f > 1);

如果 n 是 2 位数字,那么您将继续重新分配相同的值。我想你打算改变第一行

f = n; // new line
t = 0; // moved line
do {
    f = f / 10; // changed line
    t = t + 1;  // changed line
} while (f >= 1);
于 2013-09-16T05:10:39.363 回答
2

在程序中变量f应该是一个int。

循环应该如下,

f=n;
i=0;

do {
    f=f/10;
    i++;
}while(f > 0);

cout<<"\nNumber of Digits : "<<i;
于 2013-09-16T05:12:18.640 回答