如果'

时间:2017-10-23 18:05:25

标签: c++ if-statement

我只是一名学生并且开始学习C编程,所以我并没有真正处于高级水平。

我有这段代码,我想我很容易理解我要做的事情。但是,我之前收到错误说错误。

我怀疑问题是if和else之间的if-else语句。你们怎么解决它?

#include <stdio.h>
#include <iostream>
int main ()
{
int N;
scanf("%i",&N);
if (N > 50)
        (if (N > 75)
            N = N - 25;
            N = N - 10;
        )
else
        N = N + 10;
printf("%i",N);
}

2 个答案:

答案 0 :(得分:1)

考虑到错误消息,您似乎正在将程序编译为C ++程序。否则,编译器首先会发出有关错误标题<iostream>的消息。

如果是C ++程序,那么就不需要使用标题<stdio.h>中的函数,而且还应该包含C ++中的函数,如

#include <cstdio>

所以我建议删除标题并使用标准的C ++本机I / O函数。

而不是括号括在括号中的if语句的子语句。

if (N > 50)
        (if (N > 75)
            N = N - 25;
            N = N - 10;
        )

很明显,如果N大于75,那么很明显它大于50.所以第一个if语句也可能被删除。

使用大写字母命名普通变量是个坏主意。

考虑到所有这些,程序看起来像

#include <iostream>

int main()
{
    int n;

    std::cin >> n;

    if ( n > 75 )
    {
            n = n - 25; // or n -= 25;
            n = n - 10; // or n -= 10;
    }
    else
    {
        n = n + 10; // or n += 10;
    }

    std::cout << n << std::endl;
}

如果您想使用标准C I / O功能,那么程序可能看起来像

#include <cstdio>

int main()
{
    int n;

    std::scanf( "%i", &n );

    if ( n > 75 )
    {
            n = n - 25; // or n -= 25;
            n = n - 10; // or n -= 10;
    }
    else
    {
        n = n + 10; // or n += 10;
    }

    std::printf( "%i\n", n );
}

如果它是一个C程序并且错误地包含了标题<iostream>那么该程序可能看起来像

#include <stdio.h>

int main( void )
{
    int n;

    scanf( "%i", &n );

    if ( n > 75 )
    {
            n = n - 25; // or n -= 25;
            n = n - 10; // or n -= 10;
    }
    else
    {
        n = n + 10; // or n += 10;
    }

    printf( "%i\n", n );
}

答案 1 :(得分:0)

如果条件允许,只需将(更改为{。我已经编辑了你的代码 -

#include <stdio.h>
#include <iostream>
int main ()
{
int N;
scanf("%d",&N);
if (N > 50)
        {
            if (N > 75)
            N = N - 25;
            N = N - 10;
        }
else
        N = N + 10;
printf("%d",N);
}