我尝试编写一个用于学校成绩的程序,但它仅反映 A+


C++
#include<stdio.h>

int main()
{
    int marks;
    printf("Enter the Marks:");
    scanf("%d", &marks);

    if("marks >= 95"){
        printf("Grade is A+ \n");
    }
    else if("marks > 80 && marks < 95"){
        printf("Grade is B+ \n");
    }
    else if("marks > 70 && marks < 80"){
    printf("Grade is B \n");
    }
    else {
        printf("Grade is C \n");
    }
    printf("Thank you!");
    return 0;
}

我尝试过的:

我已经了解了 if 和 else if 函数。 我尝试编译代码,但它没有按预期运行。

解决方案1

C++
if("marks >= 95"){
   ^           ^

你已经把你的 if 双引号中的表达式意味着它们永远不会被计算*。 只需删除引号,以便编译器可以构建正确的表达式测试。

*实际上,因为字符串不是 NULL 他们总是评价为 TRUE

解决方案2

ifelse if 不是函数。 它们是语言结构。

你说你学到了 if,但还不够。 不要将条件表达式放在引号内。

C++
if("marks >= 95"){

变成

C++
if(marks >= 95)
{

由于您是初学者,我强烈建议您将左大括号放在自己的线上,这样您就可以更轻松地跟踪哪些大括号彼此对齐。

C++
if (marks >= 95)
{
    printf("Grade is A+ \n");
}

解决方案3

补充一下,您几乎肯定有一个可以帮助您的工具:它称为调试器。 如何使用它取决于您的编译器系统,但是快速 Google 一下您的 IDE 名称和“调试器”应该会为您提供所需的信息。 它的作用是允许您逐行执行代码并查看变量以了解它们包含的内容,并跟踪代码运行时的位置。

在函数的第一行放置一个断点,然后通过调试器运行代码。 然后查看您的代码和数据并找出应该手动发生的情况。 然后单步执行每一行,检查您期望发生的情况是否确实发生。 如果不是,那就是你遇到了问题,你可以回溯(或再次运行它并更仔细地查看)以找出原因。

抱歉,我们无法为您做到这一点 – 您是时候学习一项新的(并且非常非常有用)技能了:调试!

コメント

タイトルとURLをコピーしました