微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

函数不会打印任何内容

如何解决函数不会打印任何内容

#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 举报,一经查实,本站将立刻删除。