我是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没有
的输出
有人可以帮助我
答案 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;