黑马程序员技术交流社区

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

作者: donkey2    时间: 2014-11-11 16:29
标题: 1111—练习-利用while循环计算并输出:1-2+3-4+5-6+7…+n的和
本帖最后由 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循环,思路不同。待会儿再来~


作者: 大鱼吃小鱼    时间: 2014-11-11 16:42
来混个脸熟
作者: donkey2    时间: 2014-11-11 16:55

#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 ) 来控制循环的次数。

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


作者: 黑马黄武先    时间: 2014-11-11 22:02
哥们学的是c??
作者: donkey2    时间: 2014-11-11 23:44
黑马黄武先 发表于 2014-11-11 22:02
哥们学的是c??

是啊,是学objective-c 来着,有很多类似的地方。
作者: 黑马黄武先    时间: 2014-11-12 00:19
donkey2 发表于 2014-11-11 23:44
是啊,是学objective-c 来着, 有很多类似的地方。

我说呢,,,有点像java
作者: 早起的虫    时间: 2014-12-2 20:17
#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;
}




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