geligiao 2020-12-21 09:50 采纳率: 0%
浏览 6

为什么当N取大值时(比如1000),两个程序输出的值不同?

#include<stdio.h>
int main(){
    int N ;
    scanf("%d",&N);
    double a =2;
    double b = 1;
    int i = 0;
    double sum = 0;
    for(i=0;i<N;i++){
        sum+=1.0*a/b;
        double t =  a; 
        a = a + b;
        b = t;
    }
    printf("%.2lf",sum);       
}
#include<stdio.h>
int main(){
    int N ;
    scanf("%d",&N);
    int a =2;
    int b = 1;
    int i = 0;
    double sum = 0;
    for(i=0;i<N;i++){
        sum+=1.0*a/b;
        int t=  a; 
        a = a + b;
        b = t;
    }
    printf("%.2lf\n",sum);
	     
}
  • 写回答

5条回答 默认 最新

  • qq_25376897 2020-12-21 10:21
    关注

    一个是用int,一个是用double,转换过程中数就变了

    评论

报告相同问题?