输入一个数n,如为偶数则求表达式2+4+6+。。。+n的和。如为奇数,

输入一个数n,如为偶数则求表达式2+4+6+。。。+n的和。如为奇数,则求表达式1+3+5+。。。n的和。 帮忙给下解答, 谢谢

先判断n是偶数还是奇数,可以用n%2的结果来判断,然后使用循环来计算你需要的结果并赋给结果变量

谢谢,算了, 下面的不知道怎么写。定义几个数,怎么计算求和

while(number >0) //number为输入的n ,sum用于保存最后的结果 sum 初值为0
{
sum += number;
number -= 2;
}

int n,m,sum=0;
printf("请输入数据\n");
scanf("%d",&n);
m=n-2;
if(n%2==0)
{
while(m>=0)
{
n+=m;
m-=2;
}
}
else if(n%2!=0)
{
while(m>=1)
{
n+=m;
m-=2;
}
}
printf("%d",&n);
不知道为啥结果不对,调试的时候看到n的值是对的,不知道为啥输出的时候就变了,求大神告知

int n = 9;//这个你自己录入
int sum = 0;//表示和
while(n>0){
sum+=n;
n-=2;
}
//搞定

如果每次减2的话,不用管奇偶,直接加就行。

 #include <iostream>
using namespace std;
int main()
{
    cout << "输入一个数:" ;
    int n;
    cin >> n;
    cout << endl;
    int a = 1;
    int m;
    do
    {
        m = n/10;
        if(m>0)
            a++;
    }while(m>0);

    cout << a << endl;
    return 0;
}

似乎没错, 但就是有点小问题

不好意思,上面的发错了

 #include <iostream>
using namespace std;
void fun1(int x, int q);
void fun2(int y, int w);
int main()
{
    int n;
    cin >> n;
    if(n%2==0)
    {
        int a = 0;
        fun1(a, n);
    }
    else
    {
        int b = 1;
        fun2(b, n);
    }
    return 0;
}
void fun1(int x, int q)
{
    cout << "是偶数" << endl;
    int b1=0;
    do
    {
        x+=2;
        b1+=x;
        cout << x << "+" ;
    }while(b1<q);

    cout << "=" << q << endl;
}
void fun2(int y, int w)
{
    cout << "是奇数" << endl;
    int a1, a2=0;
    a1 = y-1;
    do
    {

        a1+=2;
        a2+=a1;
        cout << a1 << "+"  ;
    }while(a2<w);

    cout << "=" << w << endl;
}

这是对的

 #include <iostream>
using namespace std;
void fun1(int x, int q);
void fun2(int y, int w);
int main()
{
    int n;
    cin >> n;
    if(n%2==0)
    {
        int a = 0;
        fun1(a, n);
    }
    else
    {
        int b = 1;
        fun2(b, n);
    }
    return 0;
}
void fun1(int x, int q)
{
    cout << "是偶数" << endl;
    int b1=0;
    do
    {
        x+=2;
        b1+=x;
        cout << x << "+" ;
    }while(b1<q);

    cout << "=" << q << endl;
}
void fun2(int y, int w)
{
    cout << "是奇数" << endl;
    int a1, a2=0;
    a1 = y-1;
    do
    {

        a1+=2;
        a2+=a1;
        cout << a1 << "+"  ;
    }while(a2<w);

    cout << "=" << w << endl;
}
 #include<stdio.h>

void main ()
{
    int n,m,sum=0;
    printf("请输入数据\n");
    scanf("%d",&n);
    if(n%2==0)
    {
        m=2;
        while(m<=n)
        {
            sum+=m;
            m+=2;
        }
    }
    else
    {
        m=1;
        while(m<=n)
        {
            sum+=m;
            m+=2;
        }
    }
    printf("%d\n",sum);
}

简化一下:

 #include<stdio.h>

void main ()
{
    int n,m,sum=0;
    printf("请输入数据\n");
    scanf("%d",&n);

    if(n%2==0)  m=2;
    else        m=1;

    while(m<=n)
    {
        sum+=m;
        m+=2;
    }
    printf("%d\n",sum);
}

int i,s=0;
for(i = (n&1) ;i<=n;i+=2)//偶数:s=2+4+6 +..n=0+2+4+..n,奇数 s= 1+3+5+..n
s+=i;

 #include<stdio.h>

int f(int i){
    int sum=i;
    if(i>0) sum += f(i-2);
    return sum;
}

void main(){
    int n,sum;
    printf("请输入一个数:\n");
    scanf("%d",&n);
    printf("%d\n",sum = f(n));
}