Bạn ghé thăm diễn đàn lần đầu? hãy đăng ký ngay bây giờ để tham gia.
  • Đăng nhập:

Chào mừng bạn đến với ITVNN FORUM - Diễn đàn công nghệ thông tin.

Nếu đây là lần đầu tiên bạn tham gia diễn đàn, xin mời bạn xem phần Hỏi/Ðáp để biết cách dùng diễn đàn. Để có thể tham gia thảo luận bạn phải đăng ký làm thành viên, click vào đây để đăng ký.


  • Partner Area
    • ITVNN HOSTING - Thiết kế website, Cung cấp Domain, Hosting, VPS Việt Nam Anh Hùng - Thông tin truyền thông
Trang 1/2 12 cuốicuối
kết quả từ 1 tới 10 trên 14
Tăng kích thước phông chữ Giảm kích thước phông chữ
  1. #1
    gacon93vn's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Oct 2011
    Thành viên thứ
    50828
    Tuổi
    31
    Giới tính
    Bài gởi
    7
    Level: 21 [?]
    Experience: 32,109
    Next Level: 38,246
    Cảm ơn 0
    Cảm ơn 0 lần / 0 Bài viết

    Default cho mình hỏi mình làm sai cái gì  

    đề bài :viết chương trình nhập vào 2 số nguyên và 1 kí tự . nếu kí tự = + thì in ra phép tổng 2 số nguyên, trừ,*,/,%,=,>,<.
    #include<stdio.h>
    main()
    {
    int a,b,kq;
    char kitu;
    printf("nhap so a:");
    scanf("%d",&a);
    printf("nhap so b:");
    scanf("%d",&b);
    _flushall();
    printf("nhap ki tu:");
    scanf("%c",&kitu);
    if (kitu=='+')
    kq=a+b;
    printf("%d",kq);
    if(kitu=='-')
    kq=a-b;
    printf("%d",kq);
    if(kitu=='*')
    kq=a*b;
    printf("%d",kq);
    if(kitu=='/')
    kq=a/b;
    printf("%d",kq);
    if(kitu=='%')
    kq=a%b;
    printf("%d",kq);
    if(kitu=='=')
    kq=a=b;
    printf("%d",kq);
    if(kitu=='<')
    kq=a<b;
    printf("%d",kq);
    if(kitu=='>')
    kq=a>b;
    printf("%d",kq);
    else
    printf("ko hop le");
    cho hỏi sai cú pháp nào mà nó cứ báo lỗi else quài hjx vs cách làm gọn hơn có ko mình xài C free

  2. #2
    itmd's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Sep 2011
    Thành viên thứ
    50564
    Tuổi
    38
    Giới tính
    Bài gởi
    2
    Level: 16 [?]
    Experience: 9,191
    Next Level: 10,000
    Cảm ơn 1
    Cảm ơn 1 lần / 1 Bài viết

    Default

    Trích Nguyên văn bởi gacon93vn View Post
    đề bài :viết chương trình nhập vào 2 số nguyên và 1 kí tự . nếu kí tự = + thì in ra phép tổng 2 số nguyên, trừ,*,/,%,=,>,<.
    #include<stdio.h>
    main()
    {
    int a,b,kq;
    char kitu;
    printf("nhap so a:");
    scanf("%d",&a);
    printf("nhap so b:");
    scanf("%d",&b);
    _flushall();
    printf("nhap ki tu:");
    scanf("%c",&kitu);
    if (kitu=='+')
    kq=a+b;
    printf("%d",kq);
    if(kitu=='-')
    kq=a-b;
    printf("%d",kq);
    if(kitu=='*')
    kq=a*b;
    printf("%d",kq);
    if(kitu=='/')
    kq=a/b;
    printf("%d",kq);
    if(kitu=='%')
    kq=a%b;
    printf("%d",kq);
    if(kitu=='=')
    kq=a=b;
    printf("%d",kq);
    if(kitu=='<')
    kq=a<b;
    printf("%d",kq);
    if(kitu=='>')
    kq=a>b;
    printf("%d",kq);
    else
    printf("ko hop le");
    cho hỏi sai cú pháp nào mà nó cứ báo lỗi else quài hjx vs cách làm gọn hơn có ko mình xài C free
    lấy búa và tự đánh vào đầu mình thật nhiều lần, đặc biệt là mạnh tay vào là sẽ có câu trả lời thoả đáng!

  3. #3
    HTT.itvn's Avatar

    Trạng thái
    Offline
    Họ tên
    Hoàng Thiên Thanh
    Tham gia ngày
    Oct 2009
    Thành viên thứ
    2889
    Đến từ
    Hà Tĩnh
    Giới tính
    Bài gởi
    2,814
    Level: 52 [?]
    Experience: 14,891,048
    Next Level: 16,259,327
    Cảm ơn 123
    Cảm ơn 1,701 lần / 895 Bài viết

    Default

    Về lập trình C thì bạn sử dụng lệnh if quá nhiều gây nặng code , xử lý chậm . Thay vào đó em dùng lệnh swich nó gọn hơn . Thứ nữa khi nhập a,b thì khi điền dấu = , > , < mà kết quả kq=a=b , kq = a < b... là không logic khi mà em cho trước a,b rồi xử lý trong if . Ví dụ 2=3 , 2 > 3 là sai .
    Hàm kq thì em nên để float chứ không nên để int vì còn thực hiện phép chia dư .

    Khi sử dụng lệnh if nếu trong if có nhiều thành phần để xử lý thì em phải cho nó vào trong { } , ở đây em lại không có .

    Anh nghĩ em hiểu sai đề rồi , khi nhập kí tự + thì thực hiện phép công a,b ... Khi nhập các kí tự = , < , > thì thực hiện phép so sánh a,b .
    Chuyên thiết kế website / forum / Modules ... Hỗ trợ trực tuyến : d.web_vn@yahoo.com

    -------------------------------------------------------------------------------------------------
    Bởi vì : " Anh chỉ mất đi một người không yêu anh,
    Nhưng em mất đi một người yêu em thật lòng ... "

    -------------------------------------------------------------------------------------------------




  4. #4
    supermember's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Sep 2011
    Thành viên thứ
    50099
    Giới tính
    Bài gởi
    19
    Level: 25 [?]
    Experience: 87,630
    Next Level: 100,000
    Cảm ơn 2
    Cảm ơn 0 lần / 0 Bài viết

    Default

    Cậu sai chỗ dưới lệnh IF
    if(kitu=='>')
    kq=a>b;
    printf("%d",kq);
    else
    printf("ko hop le");
    Bởi vì nhiều hơn 2 dòng lệnh sẽ phải đặt trong dấu {}, còn không nó hiểu chỉ chạy 1 lệnh phía sau if
    if(kitu=='>')
    {
    kq=a>b;
    printf("%d",kq);
    }
    else
    printf("ko hop le");

    P/S:itmd
    lấy búa và tự đánh vào đầu mình thật nhiều lần, đặc biệt là mạnh tay vào là sẽ có câu trả lời thoả đáng!
    Người ta cần giúp mà cậu lại,....
    thay đổi nội dung bởi: supermember; 06-10-2011 lúc 06:52 PM

  5. #5
    gacon93vn's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Oct 2011
    Thành viên thứ
    50828
    Tuổi
    31
    Giới tính
    Bài gởi
    7
    Level: 21 [?]
    Experience: 32,109
    Next Level: 38,246
    Cảm ơn 0
    Cảm ơn 0 lần / 0 Bài viết

    Default

    Trích Nguyên văn bởi HTT.itvn View Post
    Về lập trình C thì bạn sử dụng lệnh if quá nhiều gây nặng code , xử lý chậm . Thay vào đó em dùng lệnh swich nó gọn hơn . Thứ nữa khi nhập a,b thì khi điền dấu = , > , < mà kết quả kq=a=b , kq = a < b... là không logic khi mà em cho trước a,b rồi xử lý trong if . Ví dụ 2=3 , 2 > 3 là sai .
    Hàm kq thì em nên để float chứ không nên để int vì còn thực hiện phép chia dư .

    Khi sử dụng lệnh if nếu trong if có nhiều thành phần để xử lý thì em phải cho nó vào trong { } , ở đây em lại không có .

    Anh nghĩ em hiểu sai đề rồi , khi nhập kí tự + thì thực hiện phép công a,b ... Khi nhập các kí tự = , < , > thì thực hiện phép so sánh a,b .
    a hướng dẫn e xíu về swich dc ko e mới học có 1 tuần ah mà sao thấy tùm lum hết rồi nếu if thì vs cái so sánh thì tách ra sao

  6. #6
    HTT.itvn's Avatar

    Trạng thái
    Offline
    Họ tên
    Hoàng Thiên Thanh
    Tham gia ngày
    Oct 2009
    Thành viên thứ
    2889
    Đến từ
    Hà Tĩnh
    Giới tính
    Bài gởi
    2,814
    Level: 52 [?]
    Experience: 14,891,048
    Next Level: 16,259,327
    Cảm ơn 123
    Cảm ơn 1,701 lần / 895 Bài viết

    Default

    Trích Nguyên văn bởi gacon93vn View Post
    a hướng dẫn e xíu về swich dc ko e mới học có 1 tuần ah mà sao thấy tùm lum hết rồi nếu if thì vs cái so sánh thì tách ra sao
    Cấu trúc switch như thế này nhé :

    switch(kitu){
    case gia_tri_1 : kq = a+b;break;
    case gia_tri_2 : kq = a-b;break;
    ......
    default: printf(" Ký tự không hợp lệ ");
    }
    printf("%f",kq);

  7. #7
    gacon93vn's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Oct 2011
    Thành viên thứ
    50828
    Tuổi
    31
    Giới tính
    Bài gởi
    7
    Level: 21 [?]
    Experience: 32,109
    Next Level: 38,246
    Cảm ơn 0
    Cảm ơn 0 lần / 0 Bài viết

    Default

    Trích Nguyên văn bởi HTT.itvn View Post
    Cấu trúc switch như thế này nhé :
    vậy là đánh luôn đúng ko ko cần {} riêng từng cái đúng ko học 1 tuần thấy lung tung rồi hjx

  8. #8
    HTT.itvn's Avatar

    Trạng thái
    Offline
    Họ tên
    Hoàng Thiên Thanh
    Tham gia ngày
    Oct 2009
    Thành viên thứ
    2889
    Đến từ
    Hà Tĩnh
    Giới tính
    Bài gởi
    2,814
    Level: 52 [?]
    Experience: 14,891,048
    Next Level: 16,259,327
    Cảm ơn 123
    Cảm ơn 1,701 lần / 895 Bài viết

    Default

    Trích Nguyên văn bởi gacon93vn View Post
    vậy là đánh luôn đúng ko ko cần {} riêng từng cái đúng ko học 1 tuần thấy lung tung rồi hjx
    Mỗi lệnh case không cần dấu { } này , vì nó có hàm break ở cuối mỗi case khi kết thúc lệnh case của nó rồi mới xử lý tiếp case thứ 2 .

    P/s : Em nên tham khảo tài liệu các lệnh vòng lặp , kế thừa lớp , object nhé . Nắm vững căn bản thì học sâu dễ dàng hơn .

  9. #9
    CoChiRo's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Oct 2011
    Thành viên thứ
    50832
    Tuổi
    31
    Giới tính
    Bài gởi
    2
    Level: 16 [?]
    Experience: 9,174
    Next Level: 10,000
    Cảm ơn 1
    Cảm ơn 0 lần / 0 Bài viết

    Default

    Về LT thì nên viết nhiều nhiều thì mới rành được. Mới thấy đc những cái hay.

  10. #10
    gacon93vn's Avatar

    Trạng thái
    Offline
    Tham gia ngày
    Oct 2011
    Thành viên thứ
    50828
    Tuổi
    31
    Giới tính
    Bài gởi
    7
    Level: 21 [?]
    Experience: 32,109
    Next Level: 38,246
    Cảm ơn 0
    Cảm ơn 0 lần / 0 Bài viết

    Default

    #include<stdio.h>
    main()
    {
    float kq;
    int a,b;
    char kitu;
    _flushall();
    printf("nhap a");
    scanf("%d",&a);
    printf("nhap b");
    scanf("%d",&b);
    printf("nhap kitu");
    scanf("%c",&kitu);
    switch(kitu)

    case 1
    if (kitu='+')
    kq=a+b;
    printf("%f",kq);
    break;
    1 trường hợp là zậy đúng ko a


 
Trang 1/2 12 cuốicuối

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Quuyền Hạn Của Bạn

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