Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: Tính lương thay đổi theo giờ trong lập trình C. Sửa giúp mình

  1. #1
    Ngày gia nhập
    11 2010
    Bài viết
    54

    Mặc định Tính lương thay đổi theo giờ trong lập trình C. Sửa giúp mình

    Em đã làm và đã xong, nhưng test lại thì thấy lỗi, nếu nhập giờ từ sáng đến chiều thì nó liền tính sai...không hiểu lắm sai ở đâu. Đề bài là :

    - Viết chương trình tính lương. Giờ vào ca làm sớm nhất là 6h sáng và giờ nghỉ làm muộn nhất là 18h. Từ 6h - 12h thì 6000/1h ... từ 13h -> 18h 7500/1h...

    Giúp em nhé.
    C Code:
    1. //Tinh tien luong
    2. //6h->12h 6000/h
    3. //12h -> 18h 7500/h
    4.  
    5. #include<stdio.h>
    6. #include<conio.h>
    7.  
    8. unsigned long tt(int a,int b)
    9. {
    10.     if((a<b)&&(b<=12))
    11.         return (b-a)*6000;
    12.     if((12<=a)&&(a<b))
    13.         return (b-a)*7500;
    14.     else
    15.         return (12-a)*6000+(b-12)*7500;
    16. }
    17.  
    18. void main()
    19. {
    20.     clrscr();
    21.     int a,b;
    22.     do
    23.         {
    24.         printf("Nhap gio vao ca");
    25.         scanf("%d",&a);
    26.         }while((a<6)||(a>18));
    27.     do
    28.         {
    29.         printf("Nhap gio tan ca");
    30.         scanf("%d",&b);
    31.         }while((b<6)||(b>18));
    32.     printf("Tien cong la %lu",tt(a,b));
    33.     getch();
    34. }
    90% thành viên vào chỉ để hỏi một câu sau đó té luôn
    5% thành viên vào chỉ để hỏi không để chia sẻ
    3% có tinh thần chia sẻ
    2% còn lại là BQT

  2. #2
    Ngày gia nhập
    07 2011
    Bài viết
    38

    C++ Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3.  
    4. int TinhTien(int Vao,int Tan)
    5. {
    6.     if(Vao>=12) return (Tan-Vao)*7.5;
    7.     if(Tan<12)  return (Tan-Vao)*6;
    8.     else if(Vao<12) return (12-Vao)*6+(Tan-12)*7.5;
    9. }
    10.  
    11. int main()
    12. {
    13.     int gioVao,gioTan;
    14.  
    15.     printf("Nhap gio vao ca:\n");
    16.     do { scanf("%d",&gioVao); } while((gioVao<6)||(gioVao>18));
    17.  
    18.     printf("Nhap gio tan ca:\n");
    19.     do { scanf("%d",&gioTan); } while((gioTan<gioVao)||(gioTan>18));
    20.  
    21.     printf("Tien cong la:\n%d\n",TinhTien(gioVao,gioTan));
    22.  
    23.     getch();
    24.     return 0;
    25. }
    Mình sửa lại chút , chưa test ,ko biết đã đúng đề chưa, bạn tham khảo qua

  3. #3
    Ngày gia nhập
    11 2010
    Bài viết
    54

    hi, thankyou, cách nghĩ khác làm bài sáng tỏ ra rất nhiều
    90% thành viên vào chỉ để hỏi một câu sau đó té luôn
    5% thành viên vào chỉ để hỏi không để chia sẻ
    3% có tinh thần chia sẻ
    2% còn lại là BQT

  4. #4
    Ngày gia nhập
    07 2011
    Bài viết
    160

    Trích dẫn Nguyên bản được gửi bởi tuanc Xem bài viết
    Mình sửa lại chút , chưa test ,ko biết đã đúng đề chưa, bạn tham khảo qua
    C++ Code:
    1. int TinhTien(int Vao,int Tan)
    2. {
    3.     int result=0;
    4.     if (Vao<12) result += ((Tan > 12 ? 12 : Tan) - Vao)*6000;
    5.     if (Tan>13) result += (Tan - (Vao < 13 ? 13 : Vao))*7500;
    6.     return result;
    7. }

    Sửa lại function TinhTien chút. Theo như đề bài thì mình hiểu từ 12h->13h là giờ nghỉ không tính tiền???

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

    Trích dẫn Nguyên bản được gửi bởi fbchicken Xem bài viết
    C++ Code:
    1. int TinhTien(int Vao,int Tan)
    2. {
    3.     int result=0;
    4.     if (Vao<12) result += ((Tan > 12 ? 12 : Tan) - Vao)*6000;
    5.     if (Tan>13) result += (Tan - (Vao < 13 ? 13 : Vao))*7500;
    6.     return result;
    7. }

    Sửa lại function TinhTien chút. Theo như đề bài thì mình hiểu từ 12h->13h là giờ nghỉ không tính tiền???
    cái này đơn giản nhưng cũng thank vì đóng góp
    90% thành viên vào chỉ để hỏi một câu sau đó té luôn
    5% thành viên vào chỉ để hỏi không để chia sẻ
    3% có tinh thần chia sẻ
    2% còn lại là BQT

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

  1. Trả lời: 0
    Bài viết cuối: 24-02-2012, 08:41 AM
  2. Trả lời: 0
    Bài viết cuối: 17-02-2012, 10:34 AM
  3. Database Làm sao để di chuyển dòng trong bảng này thì bảng kia thay đổi theo ?
    Gửi bởi hoangkoha trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 25-10-2011, 10:50 AM
  4. Trả lời: 3
    Bài viết cuối: 08-08-2011, 02:26 PM
  5. thay đổi configuration tùy theo máy trong winform
    Gửi bởi DNK90 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 28-06-2010, 05:48 PM

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