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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 肖伟 中级黑马   /  2014-7-28 13:08  /  1787 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 肖伟 于 2014-7-28 14:46 编辑

C语言提示用户输入一个正整数n,计算1-2+3-4+5-6+…+n的和

15 个回复

倒序浏览
#include<stdio.h>
main()
{
int flag=1;
float i,n,sum=0;
printf("Please enter n\n");
scanf("%f",&n);
for(i=1;i<=n;i++)
{
  sum=sum+flag*i/(2*i-1);
  flag=-1*flag;
}
printf("%f\n",sum);
system("pause");
}
回复 使用道具 举报

我是新手,不懂~~~能不能加上注释,:P
回复 使用道具 举报
#include<stdio.h>
main()
{
int flag=1;
float i,n,sum=0;
printf("Please enter n\n");
scanf("%f",&n);//输入数值
for(i=1;i<=n;i++)//利用循环进行加运算
{
  sum=sum+flag*i/(2*i-1);//运算公式
  flag=-1*flag;//控制加减
}
printf("%f\n",sum);
system("pause");
}
回复 使用道具 举报
肖伟 发表于 2014-7-28 13:28
我是新手,不懂~~~能不能加上注释,

我没运行,你运行一下吧
回复 使用道具 举报
蔡爽 发表于 2014-7-28 13:33
我没运行,你运行一下吧

warning :type specifier missing,,defaults to 'int'
回复 使用道具 举报
蔡爽 中级黑马 2014-7-28 13:49:00
7#
肖伟 发表于 2014-7-28 13:42
warning :type specifier missing,,defaults to 'int'

#include<stdio.h>
main()
{
int  i,n;
float sum=0,flag=1;
printf("Please enter n\n");
scanf("%f",&n);//输入数值
for(i=1;i<=n;i++)//利用循环进行加运算
{
  sum=sum+flag*i/(2*i-1);//运算公式
  flag=-1*flag;//控制加减
}
printf("%f\n",sum);
system("pause");
}
回复 使用道具 举报
肖伟 中级黑马 2014-7-28 13:55:51
8#

是c语言么
回复 使用道具 举报
肖伟 中级黑马 2014-7-28 13:56:56
9#

还是报错。。。。
回复 使用道具 举报
肖伟 发表于 2014-7-28 13:56
还是报错。。。。

额,报的什么错呀?我看看
回复 使用道具 举报
蔡爽 发表于 2014-7-28 13:58
额,报的什么错呀?我看看

macdeMac:代码 mac$ cc 05-循环.c
05-循环.c:2:1: warning: type specifier missing, defaults to 'int'
      [-Wimplicit-int]
main()
^~~~
05-循环.c:4:13: error: non-ASCII characters are not allowed outside of
      literals and identifiers
    int  i,n;
            ^~
05-循环.c:4:13: error: expected ';' at end of declaration
    int  i,n;
            ^
            ;
05-循环.c:7:16: warning: format specifies type 'float *' but the argument has
      type 'int *' [-Wformat]
    scanf("%f",&n);//输入数值
           ~~  ^~
           %d
05-循环.c:14:5: warning: implicit declaration of function 'system' is invalid
      in C99 [-Wimplicit-function-declaration]
    system("pause");
    ^
3 warnings and 2 errors generated.
回复 使用道具 举报
每次循环,就把结果乘以-1然后在加!就行了1!!
回复 使用道具 举报
肖伟 发表于 2014-7-28 14:04
macdeMac:代码 mac$ cc 05-循环.c
05-循环.c:2:1: warning: type specifier missing, defaults to 'int' ...

谢谢,已经解决了
#include <stdio.h>
int main()
{
    //定义一个接受正整数的变量
    int n=0;
     printf("请输入计算的位数(正整数)\n");
    scanf("%d",&n);
    int sum =0;//存储和
    int number = 0;//默认被加的数据
    while (number<n) {
        number++;
        if (number%2==0) {
            sum-=number;
        }
        if(number%2!=0){
            sum+=number;
        }
    }
    printf("%d\n",sum);
    return 0;
   }
回复 使用道具 举报
且行且惜 发表于 2014-7-28 14:34
每次循环,就把结果乘以-1然后在加!就行了1!!

#include <stdio.h>
int main()
{
    //定义一个接受正整数的变量
    int n=0;
     printf("请输入计算的位数(正整数)\n");
    scanf("%d",&n);
    int sum =0;//存储和
    int number = 0;//默认被加的数据
    while (number<n) {
        number++;
        if (number%2==0) {
            sum-=number;
        }
        if(number%2!=0){
            sum+=number;
        }
    }
    printf("%d\n",sum);
    return 0;
   }

可以么
回复 使用道具 举报
  1. f(number%2!=0){
  2.             sum+=number;
  3.         }  //这句可以改成else if{
  4. sum+ = number }
复制代码

貌似可以,还有=号两边最好空格一下
回复 使用道具 举报
道本真 发表于 2014-7-28 14:56
貌似可以,还有=号两边最好空格一下

嗯嗯,已经通过了,谢谢啦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马