那里错了呢???Cyuyan

来源:百度知道 编辑:UC知道 时间:2024/05/22 06:39:06
#include<stdio.h>
void main()
{
long i,n,a=1,v=1,s=1;
scanf("%d",&n);
for(i;i<n;i++)
{v=v*a;
s=s+v;
}
printf("%d\n",s);
}

for(i;i<n;i++) 这句有问题
在这行中你应该给i赋一个初值例如:
for(i=0;i<n;i++)
否则循环控制变量i是从一个未知的值开始自加的。

另外,为了数据格式的严谨,既然你使用了long型的变量,那么在输入输出的时候应该使用%ld。例如:
scanf("%ld",&n);
printf("%ld\n",s);
这个在这里严格说来不是错,但最好改过来。

还有,你的程序的目的仅仅是要输入一个数,然后不停的加1么?
如果不是,那么你的程序在算法上也还有问题。

for(i;i<n;i++) 这里i没有赋初值的。

声明的i和n是long,输入的n是整型,而且i不是int型,怎么来了++,

i 没有赋初值





追问

太感谢了