你上面的代码错在:
1、 如果i初值是0,循环100次 应该条件i<100
2、你定义了flag变量,我想你的意思肯定是想用这个标识变量来实现+-交替,但你没有在执行过程中改变flag的值,它始终是1,没起作用。
我写你要的3个方法,其中while就是模仿你的写法写的。你参考吧
#include<
stdio.h>
void useWhile(int n)//这个while我是仿造你的写法写的,你看看吧
{
int i=0,flag=1,sum=0;
while(i<n)
{
i++;
if(flag==1)
{
sum+=i;
flag=0;
}
else
{
sum-=i;
flag=1;
}
}
printf("使用while,sum=%d\n",sum);
}
void useFor(int n)
{
int i=0,flag=1,sum=0;
for(i=0;i<n;i++)
{
if(flag==1)
{
sum+=i+1;
flag=0;
}
else
{
sum-=i+1;
flag=1;
}
}
printf("使用for,sum=%d\n",sum);
}
void useDoWhile(int n)
{
int i=0,flag=1,sum=0;
do//和while不一样的是,这里第一次肯定会执行,即使n是0
{
i++;
if(flag==1)
{
sum+=i;
flag=0;
}
else
{
sum-=i;
flag=1;
}
}while(i<n);
printf("使用dowhile,sum=%d\n",sum);
}
int main()
{
int n=100;
useWhile(n);
useFor(n);
useDoWhile(n);
return 0;
}