Bài tập làm thêm

Một phần của tài liệu TUYỂN TẬP BÀI TẬP LẬP TRÌNH C HAY NHẤT (Trang 41)

e. Bàn thêm về chương trình

5.4 Bài tập làm thêm

12.Viết lại bài tâp 8, 9, 10, 11 sử dụng lệnh if.

13.Viết chương trình nhập vào điểm 3 môn thi: Toán, Lý, Hóa của học sinh. Nếu tổng điểm >= 15 và không có môn nào dưới 4 thì in kết quả đậu. Nếu đậu mà các môn đều lớn hơn 5 thì in ra lời phê "Học đều các môn", ngược lại in ra "Học chưa đều các môn", các trường hợp khác là "Thi hỏng".

int main() {

int t,l,h,tong;

printf("\n nhap diem toan:");scanf("%d",&t); printf("\n nhap diem ly:");scanf("%d",&l); printf("\n nhap diem hoa:");scanf("%d",&h); tong=t+l+h;

if(tong >= 15 && t >= 4 && l >= 4 && h >= 4) { printf("\n ket qua dau");

if(t > 5 && l> 5 && h> 5) printf("\n hoc deu cac mon"); else printf("\n hoc chua deu cac mon"); }

else printf("\n thi hong"); getch();

}

14.Viết chương trình nhập vào ngày tháng năm (dd:mm:yy), cho biết đó là thứ mấy trong tuần.

/* Bai tap 1_100 - Tinh thu cua ngay */ #include <stdio.h>

#include<conio.h> #define ESC 27 struct date

{ int month;int day;int year; } date_1;

long int funct1 (int y,int m) {

long int result;

if ( m <= 2 ) y -= 1; result = y; return (result); }

long int funct2 (int m) {

long int result;

if ( m <= 2 ) result = m + 13;

else result = m + 1; return(result); }

long int day_count (int m, int d, int y) {

long int number;

number = 1461 * funct1(y,m) / 4 + 153 * funct2(m) / 5 + d; return (number);

}

void main () { int d;do {

long int number_of_days1; int day_of_week;

printf ("Nhap vao mot ngay (dd mm yyyy), vd 12 03 1999 \n"); scanf ("%d %d %d", &date_1.day, &date_1.month, &date_1.year);

number_of_days1 = day_count (date_1.month, date_1.day, date_1.year); printf ("\nNgay la : " );

day_of_week = (number_of_days1 - 621049) % 7; switch (day_of_week)

{ case 0 :printf ("Chu Nhat,"); break; case 1 :printf ("Thu Hai,");break; case 2 :printf ("Thu Ba,");break; case 3 :printf ("Thu Tu,");break; case 4 :printf ("Thu Nam,");break; case 5 : printf ("Thu Sau,"); break; case 6 :printf ("Thu Bay,");break; }

printf("\nBAM ESC de tiep tuc\n");d=getch(); }

while(d==ESC); printf("KET THUC"); getch(); }

typedef struct DATEINFO {

int Day;int Month;int Year; char* DayWeek;

sau", "Thu bay"};

int ngayOfthang[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int namNhuan(int nam) {

if (!(nam % 400)) return 1;

if (!(nam % 4) && (nam % 100)) return 1; return 0;

}

int Hople(int ngay, int thang, int nam) {

int res = 0;

if ((ngay <= 0) || (thang <= 0) || (nam <= 0) || (thang > 12)) return 0; ngayOfthang[2] += namNhuan(nam);

if (ngay <= ngayOfthang[thang]) res = 1; ngayOfthang[2] = 28;

return res; }

int PreviousDay(int &ngay, int &thang, int &nam) { if (ngay == 1)

{

if (thang == 1)

{ ngay = 31; thang = 12; nam--; } else if (thang == 3)

{ thang--; ngay = 28 + namNhuan(nam);} else

{ thang--; ngay = ngayOfthang[thang];} }

else ngay--; return 0; }

// Cong thuc tinh weekday:

// _ Y - 1 _ _ Y - 1 _ _ Y - 1 _ // //

// F(Y) = Y - 1 ++ | --- | -- | --- | ++ | --- | ++ C C

// |_ 4 _| |_ 100 _| |_ 400 _|

// NOTE: Y: Current year

// C: so ngay tu ngay dau nam den ngay can tinh // F(Y) mod 7 = 1 : thu hai

// = ...

// = 0 : chu nhat

15.Viết chương trình nhập số giờ làm và lương giờ rồi tính số tiền lương tổng cộng. Nếu số giờ làm lớn hơn 40 thì những giờ làm dôi ra được tính 1,5 lần.

#include <stdio.h> #include <conio.h> int main()

{

int gio,luong,t;

printf("So gio lam="); scanf("%d", &gio); printf("Luong="); scanf("%d", &luong); t=gio*luong;

if(gio<40) printf("Tong luong= %d\n",t); else printf("Tong luong= %d\n",t*1.5); }

16.Viết chương trình nhập vào 3 giá trị nguyên dương a, b, c. Kiểm tra xem a, b, c có phải là 3 cạnh của tam giác không? Nếu là 3 cạnh của tam giác thì tính diện tích của tam giác theo công thức sau:

S =p * (p − a) * (p − b) *(p − c)

, với p là 1/2 chu vi của tam giác. )cp*)bp(*)ap(*p−−−

Hướng dẫn: a, b, c là 3 cạnh của tam giác phải thỏa điều kiện sau: (a + b) > c và (a + c) > b và (b + c) > a

#include<stdio.h> #include<conio.h> main()

{

int a,b,c; float S,p;

printf("\n nhap vao 3 canh cua tam giac:"); scanf ("%d%d%d",&a,&b,&c); if (((a+b)>c)&&((b+c)>a)&&((a+c)>b))

printf("\nchu vi cua tam giac la:%f",S); }

else printf("\na,b,c khong phai la canh cua tam giac"); getch(); }

18.Viết chương trình nhập vào 3 số nguyên rồi in ra màn hình theo thứ tự tăng dần. 19.Viết chương trình tính tiền điện gồm các khoảng sau:

Một phần của tài liệu TUYỂN TẬP BÀI TẬP LẬP TRÌNH C HAY NHẤT (Trang 41)

Tải bản đầy đủ (DOC)

(63 trang)
w