帮我看一下,这程序可以编译,,运行的时候没有反应~~

来源:百度知道 编辑:UC知道 时间:2024/05/23 22:54:12
#include <stdio.h>
int f(int n){
int i;
int sum = 0;
for(i=1;i<=n;i++){
if(i%2 == 0)
i=-i;
sum += i;
}
return sum;
}
void main(){
int n;
printf("intput a num here: \n");
scanf("%d",&n);
printf("%d",f(n));
}
如果注掉if(i%2==0) i=-i;可以运行,,问题是不是出在if语气啊??感觉没有错啊
计算1-2+3-4+5-6.。。。

if(i%2 == 0)
i=-i;
当条件成立的时候i变成负值了,然后for循环
不是不运行,是一直在循环。

你改变i值 死循环了

加入变量j

int j;
for(i=1;i<=n;i++){
j=i;
if(i%2 == 0)
j=-i;
sum += j;
}