qq_43412960 2019-10-19 17:17 采纳率: 78.6%
浏览 453
已采纳

这是一个关于C语言数据类型的问题

我想编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,

然后我写了一个代码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
float *num;
float num1;
float sum=0;
printf("请输入整数!");
scanf("%f",&num1);
num=&num1;
if(*num%2==0)
{for(float index=1;index<=*num;index++)
{if(index%2==0||index==1)
sum+=1/(index);
}
}
printf("%f",sum);
    system("pause");
return 0;} 

发现一个很严重的问题。我想用整数型做这个题目,但是这么做,不能存小数点后的数,我想用浮点数做这个题目,但是又不能求余数,进行正常if判断操作,(我的代码就是这个问题)我想用字符来做这个题,但是字符又不好求余数,进行判断,然后进行接下来的操作。。。。
做这种题,有没有万能药匙啊,我思维混乱。。。

  • 写回答

2条回答 默认 最新

  • 空白如空 2019-10-19 17:34
    关注

    方法一:等比数列求和公式
    方法二:你指的:我想用浮点数做这个题目,但是又不能求余数,进行正常if判断操作
    解决:

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    int main()
    {
        int num;
        float sum=0;
        printf("请输入整数!");
        scanf("%d",&num);
        if(num%2==0)
        {
            //不用加判断,直接index+=2就可以了
            for(float index=2;index<=num;index+=2)
            {   
                sum+=1/(index);
            }
        }
        printf("%f",sum);   
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器