c++编译成功,运行时无结果,有什么错误吗?

#include<cstdio>
#include<cmath>
using namespace std;
int cw(int);
int main(){
int f;
scanf("%d",&f);
cw(f);
while(f>=10){
cw(f);
}
printf("%d",f);
return 0;
}
int cw(int n){
int a[1000];
int d,b=0,zh=0;
for (int i=1;n>=10;++i){
d=n%10;
a[i]=d;
++b;
n=(n-d)/10;
}
++b;
a[b]=n;
for (int e=1;e<=b;++e){
zh+=a[e];
}
n=zh;
return n;
}

你应该把程序希望达到的效果说清楚才对。
c++编译成功,只能说明它没有语法上的错误。
运行时无结果,那就肯定有什么错误。------至于是什么错误,看我猜得对不对?
#include<cstdio>
#include<cmath>
using namespace std;
int cw(int);
int main()
{ int f;
scanf("%d",&f);
cw(f);
while(f>=10)
{ f=cw(f); //这一行有改动
}
printf("%d",f);
return 0;
}
int cw(int n)
{ int a[1000];
int d,b=0,zh=0;
for (int i=1; n>=10; ++i)
{ d=n%10;
a[i]=d;
++b;
n=(n-d)/10;
}
++b;
a[b]=n;
for (int e=1; e<=b; ++e)
{ zh+=a[e];
}
n=zh;
return n;

}
温馨提示:答案为网友推荐,仅供参考
相似回答