我这样为什么错了?
错在哪里了?
#include<stdio.h>
double add(double);
void main()
{
int x;
printf("请输入1个数:");
scanf("%d",&x);
add(x);
printf("%d",x);
}
double add(double i)
{
double a;
int j=1;
for(;j<=i;j++)
{
a=i*j;
}
}
----------------解决方案--------------------------------------------------------
定义输入的数字为整形
传递给函数的又是双精度
----------------解决方案--------------------------------------------------------
a=i*j;改成a+=i*j看看,我新手,不过你这样好象一直都是把I*J得赋值给A,前面并没有相加?
如果错误,高手包涵。
----------------解决方案--------------------------------------------------------
按照2楼说的 我把定义的整型换成double的 也不行啊..
按照3楼说的 也不行
----------------解决方案--------------------------------------------------------
我这个程序输出的结果是
控制台输入几 最后输出就是几
----------------解决方案--------------------------------------------------------
我这样为什么错了?
错在哪里了?
#include<stdio.h>
double add(double);
void main()
{
int x;
printf("请输入1个数:");
scanf("%d",&x);
add(x);
printf("%d",x);
}
double add(double i)
{
double a;
int j=1;
for(;j<=i;j++)
{
a=i*j;
}
}
现在再看下,肯定是输入几就是几,因为你后面的语句就算执行也没有输出控制符,你不妨把x==给i试下,我也不是很懂,把x赋值给i应该可以吧?错了包涵下!
----------------解决方案--------------------------------------------------------
或者后面加句printf("%i\n",a);没有输出控制符就算执行也是输出上面X的值!
----------------解决方案--------------------------------------------------------
#include<stdio.h>
long add(int);
void main()
{
int x;
long s;
printf("input x:");
scanf("%d",&x);
s=add(x);
printf("%ld",s);
}
long add(int i)
{
return i==0?1:add(i-1)*i;
}
----------------解决方案--------------------------------------------------------
6楼的
我这是调用函数```main()里面的 x
就是 add里的i
7楼的 printf("%i\n",a)
%i 是什么?
----------------解决方案--------------------------------------------------------
能不能麻烦8楼的解释一下
return i==0?1:add(i-1)*i;
这一步
我输入2 2的乘阶应该是 2*1+2*2=5
为什么我输入2 他的出的结果是2呢?
我用你的代码做的``
----------------解决方案--------------------------------------------------------