Video Ngôn Ngữ C - 15 - Lệnh Switch với ký tự

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    // viet phan mem phan biet chu~(vidu abc) hoac khong phai chu(~!@) bang switch
 
    int nhap_gia_tri = 68;
    switch (nhap_gia_tri){
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 72:
    case 73:
    case 74:
    case 75:
    case 76:
    case 77:
    case 78:
    case 79:
    case 80:
    case 81:
    case 82:
    case 83:
    case 84:
    case 85:
    case 86:
    case 87:
    case 88:
    case 89:
    case 90:
        printf("Day la chu\n");
        break;
    case 97:
    case 98:
    case 99:
    case 100:
    case 101:
    case 102:
    case 103:
    case 104:
    case 105:
    case 106:
    case 107:
    case 108:
    case 109:
    case 110:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
    case 118:
    case 119:
    case 120:
    case 121:
    case 122:
        printf("Day la chu\n");
        break;
    default:
        printf("Day la khong phai chu\n");
        break;
    }
    return 0;
 
}

#Đăng ký khóa học C++ cơ bản 2016 ( NEW ) tại đây :
#Thông tin về khóa học xem tại đây :

-Sự khác biệt giữa 2 khóa học cũ và mới :
+Khóa học C++ cơ bản 2016 là khóa học mới, được đầu tư nhiều hơn từ nội dung, phương pháp học, cách học hiệu quả.
+Trong khóa học còn có nhiều kiến thức mới như thực hành trên HackerRank, thực hành trên Codefights và Đạt nghĩ mọi người nên học khóa học mới, bởi vì đây là kiến thức mới, phù hợp với hiện tại… Mặt khác âm thanh cũng tốt hơn nhiều so với khóa học cũ giúp đỡ việc lắng nghe và hiểu được tốt hơn.

8 Likes

Rảnh ngồi phá chơi :slight_smile: :slight_smile: :slight_smile:
Mà anh có thể nói rõ hơn cho em phần bài tập được không ạ, PHÂN BIỆT ở đây là s, ý anh là cho int = …; rồi dùng switch để với mỗi giá trị int = …; thì mình có mỗi chữ khác nhau, em nghĩ ý anh là vậy

5 Likes

Trông đẹp lắm, có hoa tay đấy.

Phân biệt ở đây là em nhập vào một ký tự, kiểm tra xem đây là chữ cái abc hay không phải là chữ cái, vì dụ ~!@#$

4 Likes

dạng vậy hả anh

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

int main()
{

    int char= 'a';
    switch(char){
         case 'a':
            printf("day la chu a");
         case ...
         default:
            printf(" day la ky tu %c", char)
}

    return 0;

}
3 Likes

Đúng vậy, nhưng nếu em code vậy thì code sẽ dài lắm ^^

3 Likes
int main()
{
    char kytu = 'a';
    switch (kytu)
    {
    case 'a':
    case 'b':
    case 'c':
        printf("day la chu");
        break;
    default:
        printf("day k phai chu");
    }

    return 0;
}

đáp án như vậy phải không anh, hic hơi khó nhìn do e chưa post ảnh đc thông cảm :smiley:

2 Likes

Gần đúng rồi đấy, nhưng lỡ anh gõ chữ z vào thì sao?

Đừng, đừng bao giờ chụp hình code của em lên, rất khó đọc. Nó xấu bởi vì em chưa format code. Anh đã format rồi đó. Em xem thêm link này để biết cách format code nhìn cho đẹp.

2 Likes

nếu vậy phải thêm code cho đủ 26 chữ cái :blush: ,em sẽ edit sau

2 Likes

Eo, mấy nay bận, bạn @viethai post trc rồi, thôi làm bản full, có gì sai anh sửa giùm

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

int main()
{
int chu = '"';
switch(chu){
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z':
    printf("this is a char %c", chu);
    break;
default:
    printf("this is not a char, it's %c", chu);
}
 return 0;
}
5 Likes

quá là đẹp nuôn :smiley:

2 Likes

Haha, có cách khác hay hơn. Anh muốn sửa lắm mà anh nghĩ thôi gợi ý mọi người thôi. Mình đừng dùng switch nữa, mà hãy dùng lệnh if. Nhớ một điều ký tự cũng là số thôi :smiley: Ai làm được nhào zô.

3 Likes

thế đc dùng for không a?

Anh chỉ muốn một cách làm khác không dùng switch. Em có thể làm cách nào tùy ý, có thể dùng for thoải mái nếu cách giải của em cần dùng for.

2 Likes

Nóng hổi mới ra lò nuôn :yum:

#include< stdio.h>
#include< conio.h>
void main()
{
    printf("Bang chu cai thuong:\n");
    for (int i = 97; i <= 122; i++)
    {
        printf("%c ", i);
    }
    printf("\n\nBang chu cai in hoa:\n");
    for (int i = 65; i <= 90; i++)
    {
        printf("%c ", i);
    }
    getch();
}
2 Likes

Em lạc đề rồi, nhưng ý tưởng dùng số là đúng. Bài này là kiểm tra một ký tự nhập vào có phải là chữ hay không.

Anh nhớ không nhầm là vậy, nhắc anh nếu anh nhớ sai đề nhé. Vì nhiều videos và anh làm đã lâu nên anh không nhớ đề.

1 Like
#include<stdio.h>
int main()
{
    char ky_tu;
    printf("Nhap mot ky tu bat ki:");
    scanf("%c",&ky_tu);
    if((ky_tu>='a'&&ky_tu<='z')||(ky_tu>='A'&&ky_tu<='Z')||(ky_tu>=0&&ky_tu<=9))
        printf("Dung,day la mot ky tu.");
    else
        printf("Day khong phai la mot ky tu.");
    return 0;
}

3 Likes

E lạc đề thiệt, sr sr mn :frowning:

1 Like

Và đây chúng ta đã có một lời giải ngắn hơn hợp lý hơn cho bài toán kiểm tra ký tự nhập vào có phải là chữ cái hay không.

@14520054 đã code

#include<stdio.h>
int main()
{
    char ky_tu;
    printf("Nhap mot ky tu bat ki:");
    scanf("%c",&ky_tu);
    if((ky_tu>='a'&&ky_tu<='z')||(ky_tu>='A'&&ky_tu<='Z')||(ky_tu>=0&&ky_tu<=9))
        printf("Dung,day la mot ky tu.");
    else
        printf("Day khong phai la mot ky tu.");
    return 0;
}

Hợp lý hơn bởi vì ta có thể dễ dàng kiểm tra ký tự thuộc về khoảng ‘a-z’ hay ‘A-Z’ thay vì phải kiểm tra từng ký tự như dùng switch, có ai đảm bảo rằng việc mình sẽ chắc chắn viết đầy đủ từ ‘a-z’ trong switch mà không quên một chữ nào :smile: Và khi có lỗi thì việc tra từng casenightmare cho lập trình viên.

P/S: Anh rất thích cách @14520054 dùng biến char ky_tu; thay cho char c; hoặc char n;. Rất rõ ràng.

5 Likes

thưa anh. a có thể giải thích rõ cho em về câu lệnh:

if((ky_tu>='a'&&ky_tu<='z')||(ky_tu>='A'&&ky_tu<='Z')||(ky_tu>=0&&ky_tu<=9))

được không ạ? em không hiểu các kí hiệu trong đó? :’(

Em muốn nói tới các ký tự này hả? Anh giải thích ở dưới.

>=: lớn hơn hoặc bằng
<=: bé hơn hoặc bằng

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