Tôi đã cố gắng viết một chương trình cho cấp học và nó chỉ phản ánh A+

lập trình


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;
}

Những gì tôi đã thử:

Tôi đã tìm hiểu về hàm if và else if. Tôi đã thử biên dịch mã và nó không chạy như mong muốn.

Giải pháp 1

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

Bạn đã đặt if biểu thức trong dấu ngoặc kép có nghĩa là chúng sẽ không bao giờ được đánh giá*. Chỉ cần xóa dấu ngoặc kép để trình biên dịch có thể xây dựng bài kiểm tra biểu thức phù hợp.

*Trên thực tế, vì dây không NULL họ luôn đánh giá như TRUE.

Giải pháp 2

ifelse if không phải là chức năng. Chúng là cấu trúc ngôn ngữ.

Bạn nói rằng bạn đã học về if, nhưng chưa đủ. KHÔNG đặt biểu thức điều kiện của bạn trong dấu ngoặc kép.

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

trở thành

C++
if(marks >= 95)
{

Vì bạn là người mới bắt đầu, tôi thực sự khuyên bạn nên đặt dấu ngoặc nhọn mở đầu trên đường thẳng riêng của nó để bạn có thể dễ dàng theo dõi xem các dấu ngoặc nhọn nào thẳng hàng với nhau.

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

Giải pháp 3

Để bổ sung vào những gì đã nói, bạn gần như chắc chắn có một công cụ có thể giúp bạn: nó được gọi là trình gỡ lỗi. Cách bạn sử dụng nó tùy thuộc vào hệ thống biên dịch của bạn, nhưng việc tra cứu nhanh tên IDE và “trình gỡ lỗi” trên Google sẽ cung cấp cho bạn thông tin bạn cần. Những gì nó làm là cho phép bạn thực thi từng dòng mã của mình và xem xét các biến để xem chúng chứa gì và theo dõi mã đi đến đâu trong khi mã đang chạy.

Đặt điểm dừng trên dòng đầu tiên trong hàm và chạy mã của bạn thông qua trình gỡ lỗi. Sau đó, hãy xem mã và dữ liệu của bạn và tìm hiểu xem điều gì sẽ xảy ra theo cách thủ công. Sau đó, thực hiện từng bước một để kiểm tra xem điều bạn mong đợi xảy ra có chính xác là điều đã xảy ra hay không. Nếu không, đó là lúc bạn gặp sự cố và bạn có thể theo dõi lại (hoặc chạy lại và xem xét kỹ hơn) để tìm hiểu lý do.

Xin lỗi, nhưng chúng tôi không thể làm điều đó cho bạn – đã đến lúc bạn học một kỹ năng mới (và rất, rất hữu ích): gỡ lỗi!

コメント

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