c ++程序不起作用

时间:2013-09-16 05:08:12

标签: c++ visual-studio-2012

我是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');
}

这很有效,如果我添加一个数字号 这是我添加单个数字否

时的输出

output for single digit no

但是当我添加超过1位数时没有 它停滞不前,不会前进 这是我添加更多1没有

的输出

Output for more than 1 digit no

有人可以帮助我

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:2)

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

循环应该如下,

f=n;
i=0;

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

cout<<"\nNumber of Digits : "<<i;