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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 donkey2 于 2014-11-15 10:04 编辑

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

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
//        NSLog(@"Hello, World!");

        int n,sum;
        NSLog(@"请输入一个正整数");
        scanf("%i",&n);
        if (n % 2 == 0) {
            sum = (-1)* n/2;
        }
        else if(n % 2 == 1){
            sum = (-1)*(n-1)/2 + n;
        }
        NSLog(@"1-2+3-4+5-6+7…+n的和为%i",sum);
    }
    return 0;
}

问题:

是实现了结果的计算,但是没有用到while循环,思路不同。待会儿再来~

6 个回复

倒序浏览
来混个脸熟
回复 使用道具 举报

#include <stdio.h>

int main()
{
    // 1.定义变量存储用户输入的整数
    int n = 0;

    // 2.判断n是否为正整数
    while (n <= 0) {
        // 2.1 提示输入
        printf("输入一个正整数:\n");

        // 2.2 让用户输入
        scanf("%d", &n);
    }

    // 3.计算阶乘
    int sum = 0; // 存储计算结果
    int current = 0; // 当前要累加的数值
    while (current < n) {
        current++;

        // 如果是偶数,就减
        if (current % 2 == 0) {
            sum -= current;
        } else { // 如果是奇数,就加
            sum += current;
        }
    }

    // 4.输出结果
    printf("%d\n", sum);

    return 0;
}这种方法声明了一个current ,用来累加,逢偶数减,逢奇数加。
用while( current < n ) 来控制循环的次数。

这也是个不错的思路,不用做过多的分析。

回复 使用道具 举报
哥们学的是c??
回复 使用道具 举报

是啊,是学objective-c 来着,有很多类似的地方。
回复 使用道具 举报
donkey2 发表于 2014-11-11 23:44
是啊,是学objective-c 来着, 有很多类似的地方。

我说呢,,,有点像java
回复 使用道具 举报
#include<stdio.h>
int main()
{
        printf("请输入一个正整数:\n");
    int n;
        scanf("%d",&n);
        int i=1;
        int sum=0;
        while(i<=n)
        {
               
                if(i%2!=0)
                {
                    sum+=i;
                    i++;
                }
                else
                {
                        sum-=i;
                        i++;
                }
               
          
        }
     printf("%d\n",sum);       
     return 0;
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马