循环计算1-2+3-4+5-6+……-100.运行结果:sum=-50

#include<stdio.h>
int main()
{
	int n, s = 0;
	n = 1;
	while (n <= 100)
	{
		n++;
		if (n % 2 == 0)
		{
			s = s - n;
		}
		else
		{
			s = s + n;
		}
	}
	printf("sum=%d\n", s);
	return 0;
}

我的运行结果是sum=50.。。是不是思路有问题
续点一支烟丶
浏览 1749回答 3
3回答

o学者o

你这是从 n++ 开始计算的啊,也就是从 2 开始一直计算到了101。 把 n++ 放循环最后就好了。#include<stdio.h> int main() {     int n, s = 0;     n = 1;     while (n <= 100)     {         if (n % 2 == 0)         {             s = s - n;             printf("sum=%d\n", s);         }         else         {             s = s + n;             printf("sum=%d\n", s);         }         n++;     }     printf("sum=%d\n", s);      return 0; }

亚努人

有两种改法:要么把n的初始值改为0,要么把n++那句放到while循环的最后一句。 你的程序中,n的初始值为1,刚刚进入循环n就自增了,导致后面的结果也跟着乱了。
打开App,查看更多内容
随时随地看视频慕课网APP