c语言 等差数列或等比数列求第n项的值
#include<stdio.h>void main()
{
int i , n, c;
double a1,b1,d,q;
c = 1;
printf("等差数列第n项请按1,等比数列第n项请按2 \n");
scanf("%d",&i);
if (i == 1)
{
printf("请输入等差数列的首相a1、公差d和项数n \n");
scanf("%fl,%fl,%d",&a1,&d,&n);
while (c <= n)
{
a1 = a1 + d;
c = c++;
}
printf("a1 = %fl",a1);
}
if(i == 2)
{
printf("请输入等比数列的首相b1、公比q和项数n \n");
scanf("%fl,%fl,%d",&b1,&q,&n);
while( c <= n)
{
b1 = b1*q;
c = c++;
}
printf("b1 = %fl\n" , b1);
}
printf("按回车键退出\n");
}
这个哪有毛病吗???为啥输出的值都是 -92559604377396321000000000000000000000000000000000000000000000.000000l ba21 发表于 2017-8-13 19:00
改了 但是主要原因貌似不是这个 ba21 发表于 2017-8-13 19:00
我把逗号去掉了才正常 本帖最后由 ba21 于 2017-8-13 19:57 编辑
风行回首 发表于 2017-8-13 19:42
我把逗号去掉了才正常
scanf 中有, 号,你输入的时候必须也得输 ,号。%fl 能正常就有鬼了, %f 加 l字符;scanf, print中意义都不一样。
就scanf("%fl,%fl,%d", &a1, &d, &n)cmd输入:1.5l,3.14l,5(这里的l 和 , 都只是个占位符)
就printf("b1= %fl\n", 3.14)cmd输入: b1= 3.14l
一个是%fl的问题 一个是没有初始化两个问题结合起来导致的输出不对
建议你可以注掉一部分,只执行其中一段,慢慢调试
页:
[1]