黑马程序员技术交流社区

标题: 作业分享:利用while循环计算并输出:1-2+3-4+5-6+7…+n的和 [打印本页]

作者: 李言    时间: 2015-6-20 22:39
标题: 作业分享:利用while循环计算并输出:1-2+3-4+5-6+7…+n的和
#include<stdio.h>
// 题目:提示用户输入一个正整数n,利用while循环计算并输出:1-2+3-4+5-6+7…+n的和
int main(){
    int n, i=1, sum=0;
    printf("请输入一个正整数\n");
    scanf("%d", &n);
    while(i<=n){
        if(1 == i%2){
            sum += i;
        }
        if(0 == i%2){
            sum -= i;
        }
        i++;
    }
    printf("%d\n", sum);
    return 0;
}
作者: aofex    时间: 2015-6-20 22:54
高手  收藏了
作者: fanxing    时间: 2015-6-21 09:55
赞!!!!!!!!!
作者: 小龙女的萝卜    时间: 2015-6-21 10:24
这个不是答案吗?你给看看这个行不行,自己写着玩的,

  题目:提示用户输入一个正整数n,利用while循环计算并输出:1-2+3-4+5-6+7…+n的和

#include <stdio.h>

int main(int argc, const char * argv[])
{
    printf("请输入一个正数:\n"); // 提示输入
   
    int n =0; // 定义变量
   
    while(n <=0)
    {
        scanf("%d", &n);
        if(n <= 0)
        {
            printf("重新输入:\n");
        }
    }
    int sum = 0;
    int i = 1;
   
    while(i <= n )
    {   
        int a = -1;

        if(i%2 == 1)  sum = sum + i; // 奇数直接相加
        
        if(i%2 == 0) i = i * a, sum = sum + i;  // 偶数,乘以-1,再相加
        
        i++;  
    }
    printf("%d",sum);
    return 0;
}

作者: 李言    时间: 2015-6-21 15:32
小龙女的萝卜 发表于 2015-6-21 10:24
这个不是答案吗?你给看看这个行不行,自己写着玩的,

  题目:提示用户输入一个正整数n,利用while循环计 ...

上面的就是我自己写的...你的这个可以实现,只不过不够简洁
作者: 毛琳东    时间: 2015-6-21 15:57
把小于等于N的等号去掉结果就不一样来
作者: Thomas-王    时间: 2015-6-21 16:21
for循环感觉更简单一点.
作者: 李言    时间: 2015-6-21 16:49
Thomas-王 发表于 2015-6-21 16:21
for循环感觉更简单一点.

这道题最简单的方法是
#include <stdio.h>
// 题目:提示用户输入一个正整数n,利用while循环计算并输出:1-2+3-4+5-6+7…+n的和
int main(){
    int num, sum = 0;
    printf("请输入一个整数\n");
    scanf("%d", &num);
   
    if(0 == num%2){
        sum = -(num/2);
    }else sum = -(num-1)/2+num;
   
    printf("%d\n", sum);
    return 0;
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2