Video Ngôn Ngữ C - 13 - Câu lệnh rẽ nhánh Else If

1 Like

scanf để đọc dữ liệu nhập vào (trường hợp này là đọc số điểm người dùng nhập từ bàn phím)

1 Like

Nếu đề bài yêu cầu:nhập số điểm từ bàn phím sau đó kiểm tra xem với số điểm đã nhập thì đạt loại gì.thì ta dùng scanf.

#include<stdio.h>
#include<conio.h>
void main()
{
    float diem_so;
    printf("Nhap diem:");
    scanf("%f",&diem_so);
    if(diem_so>=8)
        printf("Gioi.");
    else if(diem_so>=7&&diem_so<8)
        printf("Kha.");
    else if(diem_so>=5&&diem_so<7)
        printf("Trung binh.");
    else
        printf("Yeu");
    getch();

}

Nếu có lỗi gì thì fix giúp mình nha.Thank you vì đã xem bài viết của mình.

2 Likes
if ()
   // your code here
else if ()
   // your code here
else ()
   // your code here

Hàm này sẽ duyệt điều kiện từ trên xuống theo phương pháp loại suy, khi đủ điều kiện thì thực hiện code, sau đó thoát ra. Vậy nên ở đoạn code trên của bạn không cần phải else if(diem_so>=7&&diem_so<8) mà chỉ cần else if(diem_so>=7). Tương tự với else if(diem_so>=5&&diem_so<7) thì chỉ cần else if(diem_so>=5)

Code thực hiện không sai, nhưng dư thừa làm tốn tài nguyên máy.

4 Likes

and i did it, thanks anh @btm

int main()
{
      float diem = 8.83748; //any values from 1 to 10
      printf("Your average mark is %.1f\n",diem);
      if (diem >=8)
            printf("You are one of my best students, \nI'm very proud of you\n\n\n");
      else if (diem >=7)
            printf("You did well\n");
      else if (diem >=6)
            printf("You disappoint me with your bad mark \n");
      else if (diem >=5)
            printf("It's terrible, banned if u still keep that result\n");
      else
            printf("I can't stand teaching you anymore\n");

    return 0;
}
2 Likes
#include<stdio.h>
#include<conio.h>
int main()
{
    int diem_tong_ket = 8;{
    if (diem_tong_ket>=8)
    printf("hoc sinh gioi\n");
    else
    if (diem_tong_ket>=7)
    printf("hoc sinh kha\n");
    else
    if (diem_tong_ket>=6)
    printf("hoc sinh trung binh\n");
    else
    if(diem_tong_ket>=5)
    printf("hoc sinh yeu\n");
    else
    printf("het thuoc chua\n");
    }
}

sai chính tả quá trời nha =))))

sai chỗ nào chú… e chạy ct đúng ùi mà :sweat:

Chương trình không sai, chỉ hơi khó đọc thôi. Nhiều if else thì bạn nên để trong { } để dễ đọc và tránh nhầm lẫn.

2 Likes

ok cám ơn bạn :smile:

1 Like

Em sai gì nào :stuck_out_tongue_winking_eye:

Bạn dùng
Markdown để code dễ nhìn nha bạn

#include <stdio.h>
#include <stdlib.h>

int main()
{
     if  (so_diem 1>0;)
     int so_diem = 1;
     if (so_diem !=0);
        printf("hoc sinh gioi");
    else
        printf("loai kha");
     return 0;
}

coi sai cho nao the bai tap else if anh @ltd giảng khó hiểu quá cho em ví dụ cu thể dk ko

1 Like

Em coi các ví dụ ở trên nhé.

2 Likes

cũng hay đó anh em xem hiểu liền

1 Like

A post was split to a new topic: Em không hiểu “Tìm chữ số lớn nhất trong số có 3 chữ số” có nghĩa là sao?

Anh đạt ơi em không hiểu cái chỗ

Int diem =10;

Rồi hình dưới lại

Int diem =1;

Anh giải thích hộ em với
^^
Em mới học nên còn kém ^^

#include <stdio.h>
#include <stdlib.h>

int main()
{

//XEP LOAI HOC LUC CUOI NAM

    //Hoc sinh
    char name[] = {};
    printf("Student: ");
    scanf("char*", name);

    float gpa;
    printf("GPA: ");
    scanf("float*", gpa);

    //Ket qua
    if(gpa>=8.0){printf("%s - %.1f - Exellent!!! This is so sick!!!\n", name, gpa);}
    else if(gpa>=6.5){printf("%s - %.1f - That's good!!\n", name, gpa);}
    else if(gpa>=5.0){printf("%s - %.1f - It's okay so!\n", name, gpa);}
    else if(gpa>=3.5){printf("%s - %.1f - You need to change.\n", name, gpa);}
    else if(gpa>=2.0){printf("%s - %.1f - Terrible. I feel disapointed\n", name, gpa);}
    else{printf("%s - Stupid!\n", name, gpa);}
    return 0;
}

Mọi người giúp em với, mã của em không nhập điểm được, kết quả nó không báo lại tên mà báo lại “:grinning: - Stupid!”. Làm sao để em gán điểm vào GPA và làm nó hiển thị lại tên ở đáp án ạ?

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int diem;
    printf("hay nhap so diem cua ban!\n");
    scanf ("%d", &diem);
if (diem>10)
    {
    printf("khong ton tai");
}
else if (diem >=8)
    {printf("ban rat gioi!");}
else if (diem <8 && diem >=5)
    {printf("ban hoc kha!");}
else if (diem<5)
    {printf("ban that kem!");}
else
    {printf("khong co cau lenh nao danh cho ban!");}
    return 0;
}

Làm theo code của anh kết quả chỉ ra được là gioi chứ không ra được như yc của để bài đâu ạ! Còn nếu viết theo C2 là int Diem =1; thì chỉ ra được là “yeu”


Nhưng nếu dùng if lồng if thì lại ra đúng như kết quả yc. Em cũng chưa hiểu tại sao, anh có thể giải thích giúp em được không ạ!
Từ một người mới bắt đầu học lập trình…:slight_smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?