如何解决函数不会打印任何内容
#include<stdio.h>
#include<math.h>
float ar(int a);
int main()
{
int a;
scanf("%d",&a);
printf("%.2f",ar(a));
return 0;
}
float ar(int a)
{
int i,br=0,uk=0;
float ar;
for(i=0;i<=a;i++)
{
if(a%i==0)
{
br++;
uk=uk+i;
}
}
ar=uk/br;
return ar;
}
我正在尝试返回输入数字的所有除数的算术值。 为什么什么东西都没有打印回来?
#include<stdio.h>
#include<math.h>
int razlika(int a);
int main(){
printf("%d",razlika(26931));
return 0;
}
int razlika(int a)
{
int i,min=10000000,max=0,p,z;
do{
a=a/10;
br++;
}
while (a!=0);
for(i=0;i<br;i++)
{
p=a%10;
a=a/10;
if(p<min) min=p;
if(p>max) max=p;
}
z=max-min;
return z;
}
在这个即时消息中,我应该找到数字的最大位数和最小位数之间的差,但它总是打印出0。我认为这是因为do while循环会将我的数字变成0?但是我不知道如何在不犯该错误的情况下计算位数。
解决方法
- 在第一个程序中,循环从0开始,并且不能除以零。
- 对于您的第二个程序,您是正确的,将数字更改为零,因此您不能在第二个循环中使用它,只需创建一个临时变量并将其设置为= a,然后在do-while循环中使用它而不是本身。
- 也在do-while循环中,使条件为while(a> 0)。
帮助这个有帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。