A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#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;
}

7 个回复

倒序浏览
高手  收藏了
回复 使用道具 举报
赞!!!!!!!!!
回复 使用道具 举报
这个不是答案吗?你给看看这个行不行,自己写着玩的,

  题目:提示用户输入一个正整数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 10:24
这个不是答案吗?你给看看这个行不行,自己写着玩的,

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

上面的就是我自己写的...你的这个可以实现,只不过不够简洁
回复 使用道具 举报
把小于等于N的等号去掉结果就不一样来
回复 使用道具 举报
for循环感觉更简单一点.
回复 使用道具 举报
李言 中级黑马 2015-6-21 16:49:05
8#
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;
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马