标题:为什么输出是0呀
只看楼主
小徐爱编程
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2019-3-24
结帖率:50%
已结贴  问题点数:10 回复次数:5 
为什么输出是0呀
#include<stdio.h>
#include<math.h>
int main()
{
    int a[20],b[20],i;
    double c,d;
    a[0]=1;
    a[1]=2;
    for(i=2;i<20;i++)
    {
        a[i]=a[i-1]+a[i-2];
    }
    b[0]=2;
    b[1]=3;
    for (i=2;i<20;i++)
    {
        b[i]=b[i-1]+b[i-2];
    }
    d=0;
    for(i=0;i<20;i++)
    {
        c=a[i]/b[i];
        d=c+d;
    }
    printf("%f",d);
    return 0;
}
搜索更多相关主题的帖子: 输出 include int for i++ 
2019-04-17 22:45
C基础
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:133
专家分:421
注 册:2018-10-15
得分:4 
double  类型的数据输出要用%lf  printf(“%lf”,d);

试试
2019-04-17 22:58
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1501
专家分:6573
注 册:2010-7-5
得分:4 
#include<stdio.h>
#include<math.h>
int main()
{
    int a[20],b[20],i;
    double c,d;
    a[0]=1;
    a[1]=2;
    for(i=2;i<20;i++)
    {
        a[i]=a[i-1]+a[i-2];
        printf("%d\n",a[i]);
    }
    b[0]=2;
    b[1]=3;
    for (i=2;i<20;i++)
    {
        b[i]=b[i-1]+b[i-2];
        printf("%d\n",b[i]);
    }
    //d=0;
    for(i=0;i<20;i++)
    {
        c=a[i]/b[i];        
        d=c+d;
        printf("a[%d]=%d,b[%d]=%d,c=%f,d=%f\n",i,a[i],i,b[i],c,d);
    }
    printf("%f",d);
    return 0;
}

加些调试语句,就能找到问题了。



报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2019-04-17 23:01
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1501
专家分:6573
注 册:2010-7-5
得分:0 
回复 2楼 C基础
格式化输出
%-3d:前面减号表示左对齐,默认不加为右对齐
%d:decimal,十进制数
%ld:长整型,小写字母l和d,暂时未用到
%3d:显示为3位整数,即便不够3位,前面也用空格占位,超3位,不限
%03d和%.3d:前导0,超3位,不限
%lf:主要用于scanf,long float,长浮点数,前面是英文小写字母l
%f:和下面的这些,主要用于printf,显6位小数,123.13显示为123.130000
%.1f:显示1位小数,123.13显示为123.1
%5.1f:前面是小数5.1,意思是显示整数、小数点和1位小数一共5位的浮点数,显示 123.1
%05.1f:与上面相同,只是前导为0
%o:八进制整数
%x:十六进制整数,或字符串地址
%s:对应的字符串
参考:https://

用户输入:
int a,b,c;
scanf("%d",&a);
scanf("%d%d",&b,&c);  //两次输入的数,怎么间隔呢?
/*分三行输入55(回车)66(回车)77(回车)时,输出的是55,66,77;
在同一行用空格间隔输入55 66 77时,输出的是55,66,77
用逗号间隔输入55,66,77时,输出的是55,16,0;*/
printf("%d,%d,%d",a,b,c);
double vx;
scanf("%lf",&vx);
printf("%f\n",vx);//一般精确到小数点后6位

scanf的时候,是用lf的,
printf的时候,用f或者lf,好像没什么差别。

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2019-04-17 23:08
lihuahao哈
Rank: 2
等 级:论坛游民
威 望:1
帖 子:27
专家分:39
注 册:2018-11-17
得分:4 
把你的变量都初始化试试,例如a[20]={0};

[此贴子已经被作者于2019-4-17 23:45编辑过]


不懂就问,我也想变强!
2019-04-17 23:35
不懂才问
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:大草原
等 级:贵宾
威 望:29
帖 子:1501
专家分:6573
注 册:2010-7-5
得分:0 
回复 5楼 lihuahao哈
和那个无关吧……

程序代码:
显式转换
int n1=33,n2=17;
double d1=33.0,d2=17.0;
puts("============两个操作数是整型变量的情况:============");
printf("%d和%d的平均值结果用%%d是:%d\n",n1,n2,(n1+n2)/2);
printf("%d和%d的平均值用%%f得到的结果是:%f\n",n1,n2,(n1+n2)/2);  //带个第三方整型常量,为什么是0.000000?
printf("验证上一行:%d除以%d,用%%f结果是:%f\n",n1,n2,n1/n2);  //为什么是0.000000?
printf("验证上两行:%d加%d,用%%f结果是:%f\n",n1,n2,n1+n2);  //为什么是0.000000?
printf("验证上三行:%d减%d,用%%f结果是:%f\n",n1,n2,n1-n2);  //为什么是0.000000?
puts("============一个变量是浮点型,一个变量是整型的情况:============");
printf("%f除以%d,一个变量是浮点数一个变量是整数,结果用%%d是:%d\n",d1,n2,d1/n2);  //结果:252645135???
printf("验证上一行,换个位置,结果还用%%d是:%d\n",n1,d2,n1/d2);  //结果是33???
printf("带个第三方整型常量:%f和%d平均数是:%d\n",d1,n2,(d1+n2)/2);
printf("验证上一行,换个位置:%d和%f平均数是:%d\n",n1,d2,(n1+d2)/2);
printf("带个第三方浮点型常量:%f和%d平均数是:%d\n",d1,n2,(d1+n2)/2.0);
printf("验证上一行,换个位置:%d和%f平均数是:%d\n",n1,d2,(n1+d2)/2.0);
printf("%f除以%d,结果用%%f是:%f\n",d1,n2,d1/n2);
printf("%d除以%f,两种类型换个位置结果用%%f是:%f\n",n1,d2,n1/d2);
printf("带个整型常量,%f和%d的平均值%%f是:%f\n",d1,n2,(d1+n2)/2);
printf("验证上一行,换下位置,%d和%f平均值%%f是:%f\n",n1,d2,(n1+d2)/2);
printf("浮点常量,%f和%d的平均值%%f是:%f\n",d1,n2,(d1+n2)/2.0);
printf("验证上一行,换下位置,%d和%f平均值%%f是:%f\n",n1,d2,(n1+d2)/2.0);
puts("============两个操作数都是浮点型变量的情况:============");
printf("%f除以%f,正常的用%%f是:%f\n",d1,d2,d1/d2);
printf("%f除以%f,结果却用%%d是:%d\n",d1,d2,d1/d2);
printf("带个浮点常量,%f和%f的平均数%%d是:%d\n",d1,d2,(d1+d2)/2.0);
printf("带个整型常量,%f和%f的平均数%%d是:%d\n",d1,d2,(d1+d2)/2);
printf("带个浮点常量,%f和%f的平均数%%f是:%f\n",d1,d2,(d1+d2)/2.0);
printf("带个整型常量,%f和%f的平均数%%f是:%f\n",d1,d2,(d1+d2)/2);
puts("======好多坑,代入实际问题,看看会不会犯“想当然”的错误:======");
double d_1_1=15.5;int n_1_1=6;printf("现有西瓜%f个,平均分给%d个人,每人可得%f个西瓜。\n",d_1_1,n_1_1,d_1_1/n_1_1);
int n_2_1=35,n_2_2=8;printf("学习互帮,有%d个需补习学生,有%d个较好学生,平均每个较好生要带%f个补习生。\n",n_2_1,n_2_2,n_2_1/n_2_2);
printf("上题填坑:%f\n",(double)n_2_1/(double)n_2_2);
int n_3_1=86,n_3_2=91,n_3_3=95,n_3_4=3;printf("语%d数%d英%d平均分是:%f\n",n_3_1,n_3_2,n_3_3,(n_3_1+n_3_2+n_3_3)/n_3_4);
printf("上题填坑:虽然语数英可能都是整分题,但平均分可能是小数%f\n",(double)(n_3_1+n_3_2+n_3_3)/n_3_4);

报告老师,我低头不是因为我在装低调,是你问的问题,我真的不会答,,,
2019-04-18 06:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-494223-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.060886 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved