c - 我的函数没有返回它应该返回的内容
问题描述
我创建的函数有问题。它不返回1
。我尝试在函数中main
而不是在函数中使用代码并且它有效。
我不知道我是否遗漏了什么,所以请检查一下并告诉我:
int happynum(int n); // THIS IS THE FUNCTION
int main()
{
int num,digito,i,dig,temp,sum=0, lol;
do {
printf("Escribe un numero positivo:\n");
scanf("%d", &num);
} while (num <= 0);
lol = happynum(num); // THIS IS WHAT THE FUNCTION RETURN
printf("%d ", lol);
while(num!=89 && num!=1) //THIS IS THE SAME FUNCTION BUT IN THE MAIN
{
sum=0;
while(num>0)
{
dig=num%10;
num=num/10;
sum=sum+(dig*dig);
}
num=sum;
}
printf("%d", num);
/*
if(num== 1)
{
printf("Happy Number\n");
}
else
printf("UnHappy Number\n"); */
return 0;
}
这是功能:
int happynum(int n) // THIS IS THE FUNCTION
{
int i,dig,num,sum=0;
while(num!=89 && num!=1)
{
sum=0;
while(num>0)
{
dig=num%10;
num=num/10;
sum=sum+(dig*dig);
}
num=sum;
}
return num;
}
解决方案
您正在使用num
本地 tohappynum
而不是您传递的参数。命名参数num
,然后使用它,如下所示:
int happynum(int num) // THIS IS THE FUNCTION
{
int i,dig,sum=0;
while(num!=89 && num!=1)
{
sum=0;
while(num>0)
{
dig=num%10;
num=num/10;
sum=sum+(dig*dig);
}
num=sum;
}
return num;
}
然后,您可能应该取消注释末尾的块,main
以便获得Un
/Happy Number
结果。
推荐阅读
- javascript - 在完成之前不会再次向内部 observable 发出的 RxJS 运算符
- firebase - 无法使用我的 Firebase 会话设置带有谷歌存储的存储桶
- javascript - Webpack 热中间件不工作
- python - python 3.5 Flask 安装在 apache 2.4 上
- ios - UILabel 中的不同文本在 UICollectionView 单元格中保持相同的字体大小
- java - 如何将自定义插件发布到本地 Maven,然后在另一个本地项目中使用?
- html - 如何在图像上添加细节?
- android - 尝试使用 URLconnection 但我收到错误
- slurm - 来自 aprun 的 Slurm
- angular - 在 TypeScript.2.7 中找不到名称“TextDecoder”