好吧,请放轻松。刚刚学习 C++,首先在这里也提问。我编写了一个程序来列出所有低于 1000 的 Armstrong 数字。虽然我已经阅读了关于自恋数字的 Wikipedia 文章,但我只在寻找 3 位数字。这意味着我只关心数字立方的总和。
它通过执行 1 到 1000 的 for 循环来工作,使用用户定义的函数检查索引变量是否为 armstrong 并打印它。用户定义的函数只需使用一个while循环来隔离数字并将立方体的总和与原始数字相匹配即可。如果为真,则返回 1,否则返回 0。
问题是,我在输出中绝对没有数字。只有 void main() 中的 cout 语句出现,其余为空白。尝试尽可能多地调试。编译器是 Turbo C++。代码-
#include<iostream.h>
#include<conio.h>
int chk_as(int);//check_armstrong
void main()
{
clrscr();
cout<<"All Armstrong numbers below 1000 are:\n";
for(int i=1;i<=1000;i++)
{
if (chk_as(i)==1)
cout<<i<<endl;
}
getch();
}
int chk_as (int n)
{
int dgt;
int sum=0,det=0;//determinant
while (n!=0)
{
dgt=n%10;
n=n/10;
sum+=(dgt*dgt*dgt);
}
if (sum==n)
{det=1;}
else
{det=0;}
return det;
}