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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lipeiaiwo 中级黑马   /  2014-7-12 17:37  /  2126 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大家看看我这样是不是对的呢?
/*
计算1-2+3-4+5-6......n的值
*/

#include <stdio.h>

int main()
{
    int n = 100;
    int a = 0;
    int b = 0;
    while(a<n)
    {
        a++;
        if(n%2==0)
        {
            b=b-a;
        }
        else
        {
            b=b+a;
        }
        
    }
    printf("值是%d\n",b);
    return 0;
}

13 个回复

正序浏览
Devchen 发表于 2014-7-13 00:07
视频还是什么题中的,还没遇到

视频中的一个练习题
回复 使用道具 举报
谢谢大家了.....
回复 使用道具 举报
不对的,这个直接再设置一个参数就好了。(-1)*(-1)不就是1了么,那1*(-1)就是-1了,刚好隔一个数字,是负数,用这个数乘以循环的数字就能控制是实现了
回复 使用道具 举报
大坏蛋 发表于 2014-7-12 22:51
楼主偷懒了,哈哈哈,直接通过规律做的,但当时的题目好像是让同学们做while练习的 ...

视频还是什么题中的,还没遇到
回复 使用道具 举报
这个思路很清晰啊,a%2
回复 使用道具 举报
Devchen 发表于 2014-7-12 21:25
这样解决不知是否复合你的要求。

楼主偷懒了,哈哈哈,直接通过规律做的,但当时的题目好像是让同学们做while练习的
回复 使用道具 举报
#include <stdio.h>//1-2+3-4+5...+n
int main()
{        int n;  
        int i=0,sum=0;
        while(n<=0)
        {
       
       printf("请输入一个正整数\n");
       scanf("%d",&n);
       
        }

       
        while(i<n)
        {  
                  
          i++;
          sum+=i;  
          printf("%d\n",sum);
          if (i<n)
          {
                i++;
            sum-=i;
                printf("%d\n",sum);
          }
         
        }





       
}
         
回头看了看自己做的,都忘记怎么想的
回复 使用道具 举报
用for循环比较简单一些,可以试一下
回复 使用道具 举报
if(n%2 == 0)这里错了,应该用a而不是n。否则整个循环期间这个判断始终为真,因为n=100是固定不变的
回复 使用道具 举报
来学习一下
回复 使用道具 举报
这样解决不知是否复合你的要求。
  1. #include <stdio.h>

  2. int main()
  3. {
  4.     int n = 0;
  5.     printf("请输入要计算的n值\n");
  6.     scanf("%d", &n);
  7.     printf("您输入的n = %d\n", n);
  8.     int result = 0;


  9.         if(n%2==0)
  10.         {
  11.             result = -(n/2);
  12.         }
  13.         else
  14.         {
  15.             result = n - (n-1)/2;
  16.         }
  17.         

  18.     printf("result = %d\n",result);
  19.     return 0;
  20. }
复制代码
回复 使用道具 举报
n=3,输出是6,那就就不对了。感觉没那么复杂。先对n做个奇偶判断,根据奇偶算结果。
回复 使用道具 举报
可以的,看起来比for循环更简单啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马