Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 21 kết quả

Đề tài: Lỗi sai khi dùng switch, case vả break

  1. #1
    Ngày gia nhập
    12 2008
    Bài viết
    20

    Wink Lỗi sai khi dùng switch, case vả break

    C++ Code:
    1. #include<iostream>
    2. #include<conio.h>
    3. using namespace std;
    4. //Roman Nummeral Converter
    5.  
    6. int main()
    7. {
    8.    char choice;
    9.  
    10.    cout<<" Enter one of these numbers from 1 to 10:  \n";
    11.    cin>>choice;
    12.    switch(choice)
    13.    {
    14.    case'1':cout<<" It is converted into " <<"I\n";
    15.            break;
    16.    case'2':cout<<" It is converted into "<<"II";
    17.            break;
    18.    case'3':cout<<"It is converted into "<<"III\n";
    19.            break;
    20.    case'4':cout<<"It is convertes into "<<"IV\n";
    21.            break;
    22.    case'5':cout<<" It is coverted into "<<"V\n";
    23.            break;
    24.    case'6':cout<<" It is convered into "<<"VI\n";
    25.            break;
    26.    case'7':cout<<" It is converted into "<<"VII\n";
    27.            break;
    28.    case'8':cout<<" It is converted into "<<"VIII\n";
    29.            break;
    30.    case'9':cout<<" It is converted into "<<"IX\n";
    31.            break;
    32.    case'10':cout<<" It is converted into "<<"X \n";
    33.            break;
    34.    default:  cout<<"Sorry!\n "<<"You do not enter one digit belong to the range from 1 to 10.";
    35.    }
    36.    return 0;
    37.    getch();
    38. }

    mình ko biết tại sao khi nhập 10 vào nó lại converted sang I.mà lẽ ra phải là X

    lại còn nữa các bạn ah.nhập 11.12,13,....... nó đều convert sang I.ý của đề bài là convert sang chứ số la mã.cảm ơn các bạn trước.
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 21-04-2009 lúc 07:32 AM.

  2. #2
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Sửa lại rồi đây.
    Nhìn so sánh để thấy sự khác biệt.
    ĐỌC KĨ LẠI 2 PHẦN CỦA SWITCH:
    1. Giá trị trong Case
    2. Lý do tại sao dùng break

    C++ Code:
    1. #include<iostream>
    2. #include<conio.h>
    3. using namespace std;
    4. //Roman Nummeral Converter
    5.  
    6. void output(char *__out)
    7. {
    8.     std::cout << "It is converted into " << __out << std::endl;
    9. }
    10.  
    11. int main()
    12. {
    13.     int choice;
    14.  
    15.     cout << "Enter one of these numbers from 1 to 10: ";
    16.     cin  >> choice;
    17.     switch (choice)
    18.     {
    19.         case 1:
    20.             output("I");            break;
    21.         case 2:
    22.             output("II");           break;
    23.         case 3:
    24.             output("III");          break;
    25.         case 4:
    26.             output("IV");           break;
    27.         case 5:
    28.             output("V");            break;
    29.         case 6:
    30.             output("VI");           break;
    31.         case 7:
    32.             output("VII");          break;
    33.         case 8:
    34.             output("VIII");         break;
    35.         case 9:
    36.             output("IX");           break;
    37.         case 10:
    38.             output("X");            break;
    39.         default:
    40.             cout << "Sorry!\n " << "You do not enter one digit belong to the range from 1 to 10.";
    41.             break;
    42.     }
    43.  
    44.     return 0;
    45. }
    None!

  3. #3
    Ngày gia nhập
    12 2008
    Bài viết
    20

    void output(char *__out)
    {
    std::cout << "It is converted into " << __out << std::endl;
    }
    vai trò của dòng lệnh này là cout<<"It is converted into ". sau mỗi case thay vì mình phải cout nhiều lần phải ko bạn. hic.minh ko biết lệnh nầy.bạn vui lòng nói rõ một chút được ko.

  4. #4
    Ngày gia nhập
    12 2008
    Bài viết
    20

    //State Abbreviations
    #include<iostream>
    #include<conio.h>
    using namespace std;

    int main()
    {
    char choice;
    cout<<" You can enter one of these group character NC,SC,GA,FL,or AL;\n"<<"you can also enter with both letters in uppercase or lowercase ";
    cin>>choice;
    switch(choice);
    {
    case"NC":
    case"nc":cout<<" the name of the state that correspondes with the abbreviation entered is : North Carolina\n";
    break;
    case"SC":
    case"sc":cout<<"the name of the state that correspondes with the abbreviation entered is : Sourth Carolina\n";
    break;
    case"GA":
    case"ga":cout<<"the name of the state that correspondes with the abbreviation entered is : Georgia\n";
    break;
    case"FL":
    case"fl":cout<<"the name of the state that correspondes with the abbreviation entered is : Florida\n";
    break;
    case"AL":
    case"al":cout<<"the name of the state that correspondes with the abbreviation entered is : Alabama\n";
    break;
    default:
    cout<<" Sorry ! you do not enter correct character.\n";
    }
    return 0;
    getch();
    }
    bạn ơi xem hộ mình luôn bài này với.mình nghĩ là tại chỗ khai báo "char choice" mà không biết sửa là gì.ở đây ko phải dùng char đúng ko bạn,phải là string nhỉ.chỉ giúp tớ với.cảm ơn nhiều

  5. #5
    Ngày gia nhập
    11 2008
    Bài viết
    5

    char thì chỉ lưu một kí tự thôi bạn, ví dụ bạn nhập số 10, thì nó chỉ lưu 1 kí tự duy nhất là số 1. Bạn tìm hiểu char[] thử xem!

  6. #6
    Ngày gia nhập
    11 2007
    Bài viết
    18

    Mặc định Lỗi sai khi dùng switch, case vả break

    Bạn khai báo string choice[5]; chả hạn.Dùng lệnh gets(choice); để nhận vào một chuỗi.
    Bạn nên chuyển chuỗi choice sang viết hoa hết.Sau đó dùng hàm strcmp() rồi so sánh xem chuỗi choice nhập vào là NC,SC,GA,FL,hay AL

  7. #7
    Ngày gia nhập
    05 2008
    Bài viết
    23

    Bạn sửa như anh xcross87 ấy. Bạn dùng char để lưu thì chỉ được 1 kí tự thôi tốt nhất là xài int còn bài sau thì bạn phải khai báo char choi[3] rồi dùng hàm so sánh strcmp chứ dùng char ko sao được
    Đã được chỉnh sửa lần cuối bởi bachtrong43 : 21-04-2009 lúc 06:26 PM.

  8. #8
    Ngày gia nhập
    12 2008
    Bài viết
    20

    các bạn có thể nói rõ hơn một chút ở bài số 2 được không.mình vẫn không hiểu tại sao phải dung hàm strcmp. minh có cần compare cái gì đâu bạn. hic. giúp mình với.

  9. #9
    Ngày gia nhập
    12 2008
    Bài viết
    20

    Unhappy sử dụng Switch statement

    Đây là bài mình làm.mình chẳng biết sai chỗ nào.các bạn chỉ giùm.thanks
    Đề bài nhé:

    Problem: State Abbreviations:
    Write a program that asks the user to enter one of the following state abbreviations: NC,SC,GA,FL, or AL. The program should then display the name of the state that cooesponds with the abbreviation entered ( North Carolina, South Carolina, Georgia, Florida, or Alabama).
    Input Validation: Accept abbreviations with both letters on uppercase or both lowercase. Display an error message if an abbreviation other than what is listed is entered.


    Code:
    //State Abbreviations
    #include<iostream>
    #include<conio.h>
    #include<string.h>
    using namespace std;
    
    int main()
    {   const int SIZE=3;
    	char choice[size];
    	cout<<" You can enter one of these groups character NC,SC,GA,FL,or AL;\n"<<"you can also enter with both letters in uppercase or lowercase ";
        cin.getline(choice,SIZE);
    	switch(choice);
    	{
    	case"NC":
        case"nc":cout<<" the name of the state that correspondes with the abbreviation entered is : North Carolina\n";
    		break;
        case"SC":
        case"sc":cout<<"the name of the state that correspondes with the abbreviation entered is : Sourth Carolina\n";
    		break;
        case"GA":
        case"ga":cout<<"the name of the state that correspondes with the abbreviation entered is : Georgia\n";
    		break;
        case"FL":
        case"fl":cout<<"the name of the state that correspondes with the abbreviation entered is : Florida\n";
    		break;
        case"AL":
        case"al":cout<<"the name of the state that correspondes with the abbreviation entered is : Alabama\n";
    		break;
        default:
    		cout<<" Sorry ! you do not enter correct character.\n";
    	}
    	return 0;
    	getch();
    }

  10. #10
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    swich chỉ dùng với kiểu nguyên thôi (trong C còn trong C++ thì mình không rõ lắm).

    Nếu bạn muốn dùng kiểu khác thì dùng if ấy.
    Bạn dùng hàm so sánh chuổi strcmp() và if chứ không dùng swich được.

Các đề tài tương tự

  1. cần giúp đỡ của cộng đồng c Việt dùng câu lệnh switch case nhé !
    Gửi bởi ngoctu_93 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 12
    Bài viết cuối: 28-09-2011, 09:35 AM
  2. Kỹ thuật C++ Sự khác biệt giữa if else - switch case ?
    Gửi bởi davidpuskin trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 23-05-2011, 08:16 AM
  3. Lỗi khi dùng switch case trong lập trình C++?
    Gửi bởi jerry2407 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 5
    Bài viết cuối: 03-11-2010, 10:39 PM
  4. Lập trình C++ | Lỗi khi dùng switch-case, làm sao sửa lỗi?
    Gửi bởi chankx trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 29-05-2009, 12:35 AM
  5. Câu lệnh switch, case trên C, trắc nghiệm không dùng máy tính????
    Gửi bởi nguoingu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 17-05-2009, 01:00 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn