Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 71

Ig: myfriendscallme_chicken

Bài tập
Viết chương trình nhập vào 2 số nguyên, tính tổng, hiệu, tích, thương và in kết quả ra màn hình.
Input: Hai số nguyên cách nhau dấu cách. Ví dụ 4 5
Output: In ra thông báo trên các dòng như sau:
Dòng 1: Tong X + Y = Z //X, Y là 2 số ở input, Z là kết quả
Dòng 2: Hieu X - Y = Z 
Dòng 3: Tich X * Y = Z 
Dòng 4: Phan nguyen X / Y = Z 
Dòng 5: Phan du  X % Y = Z 
Dòng 6: Ket qua thuc  X / Y = Z //lấy kết quả là số thực, với độ chính xác 2 chữ số thập phân 
Constrains: Các giá trị kiểu số nguyên, kết quả của dòng 6 là số thực
For example:

Inpu
Result
t

16 Tong 1 + 6 = 7
Hieu 1 - 6 = -5
Tich 1 * 6 = 6
Phan nguyen 1 / 6 = 0
Phan du 1 % 6 = 1
Ket qua thuc 1 / 6 = 0.17

Lời Giải Đúng


#include<stdio.h>
int main(){
int x,y;
scanf("%d%d", &x, &y);
printf ("Tong %d + %d = %d", x, y, x+y);
printf ("\nHieu %d - %d = %d", x, y, x-y);
printf ("\nTich %d * %d = %d", x, y, x*y);
printf ("\nPhan nguyen %d / %d = %d", x, y, x/y);
printf ("\nPhan du %d %% %d = %d", x, y, x%y);
printf ("\nKet qua thuc %d / %d = %.2f", x, y, (float)x/y);
return 0;
}
Ig: myfriendscallme_chicken

Bai tap
Viết chương trình nhận vào một số n� ở dạng thập lục phân với phần tiền tố (prefix) là 0x0� và hiển
thị số đó dưới dạng thập phân.
+ Đầu vào: Số n�
+ Đầu ra: Số n� ở dạng thập phân. Nếu n� không phải là một số ở dạng thập lục phân thì in
ra Invalid inputInvalid input.
+ Ràng buộc: n� có không quá 10 chữ số
For example:

Input Result

0x1B 27

1B Invalid input

0x1a 26

0x4g Invalid input

Loi giai dung


#include <stdio.h>
int main(){
char n[100] = {0};
unsigned long long output = 0;
int i;
scanf("%s", n);
if(n[12] != 0)
{
printf("Invalid input");
return 0;
}
else
{
if((n[0] == 48) && (n[1]==120))
{
for(i = 2; n[i] != 0; i = i + 1)
Ig: myfriendscallme_chicken

{
output *= 16;
if((48 <= n[i]) && (n[i] <= 57))
{
output = output + (n[i] - 48);
}
else if((97 <= n[i]) && (n[i] <= 102))
{
output = output + ((n[i] - 97) + 10);
}
else if((65 <= n[i]) && (n[i] <= 70))
{
output = output + ((n[i] - 65) + 10);
}
else
{
printf("Invalid input");
return 0;
}
}
}
else
{
printf("Invalid input");
return 0;
}
}
Ig: myfriendscallme_chicken

printf("%llu", output);
return 0;
}
Bài tập tiền tố
Viết chương trình nhập vào một số thập phân và hiển thị số đó dưới dạng thập lục phân với phần tiền tố
là 0x, các chữ số là chữ hoa.
+ Đầu vào: Số thập phân n�
+ Đầu ra: Số n� ở dạng thập lục phân
+ Ràng buộc: 0≤n≤10120≤�≤1012
For example:

Input Result

23 0x17

Loi giai dung


#include <stdio.h>
int main(){
double n;
char output[100] = {0};
int i;
scanf("%lf", &n);
if((n < 0) || ( n > 1000000000000))
{
return 0;
}
sprintf(output, "0x%lx", (unsigned long)n);
for(i = 2; output[i] != 0; i++)
{
if((output[i] >= 'a') && (output[i] <= 'f'))
{
output[i] = (output[i] - 'a') + 'A';
Ig: myfriendscallme_chicken

}
}
printf("%s", output);
return 0;
}
Bai tap
Viết chương trình nhận vào 1 kí tự, dùng các biểu thức logic để kiểm tra xem nó là kí tự thường, kí tự
hoa, chữ số hay kí tự trắng (gồm dấu cách, dấu tab, xuống dòng)

 Nếu là kí tự thường thì in ra THUONG


 Nếu là kí tự hoa thì in ra HOA
 Nếu là kí số thì in ra SO
 Nếu là kí tự trắng (dấu cách, Tab, xuống dòng) thì in ra TRANG

Gợi ý:

// kiểm tra kí tự nhập vào

if ( ch>='a' && ch<='z' )

printf( "THUONG" );

else if( ... )

printf( "HOA" );

else if( ... )

printf( "SO" );

else if( ... )

printf( "TRANG" );

}
Input Format
Ig: myfriendscallme_chicken

 Một kí tự có thể là kí tự a-z, A-Z, 0-9, dấu cách, Tab, xuống dòng.

Constraints

 Không có.

Output Format
In ra 1 trong 4 xâu, tùy thuộc vào kí tự nhập vào:

 THUONG
 HOA
 SO
 TRANG

For example:

Inpu
Test Result
t

A A HOA

a a THUONG

\t TRANG

Loi giai dung


#include <stdio.h>
int main()
{
char ch;
scanf("%c", &ch);
if ( ch>='a' && ch<='z' )
{
printf( "THUONG" );
}
else if( ch>='A' && ch<='Z')
{
Ig: myfriendscallme_chicken

printf( "HOA" );
}
else if( ch>='0' && ch<='9' )
{
printf( "SO" );
}
else if(ch == 32 || ch == 9 || ch == 10)
{
printf( "TRANG" );
}
return 0;
}
Bài tập ax+b=0
Viết chương trình giải phương trình (pt) ax+b=0.
Với a, b là hai số thực nhập từ bàn phím.

Lời giải đúng


#include <stdio.h>
int main(){
Ig: myfriendscallme_chicken

float a, b;
scanf("%f%f", &a, &b);
if(a == 0)
{
if(b == 0)
{
printf("VSN");
}
else
{
printf("VN");
}
}
else
{
printf("%.2f", -b/a);
}
}
Bài tập
Viết chương trình giải phương trình
bậc 2 ax2+bx+c =0. Với hệ số a, b, c
được nhập từ bàn phím. 

Lời giải đúng


#include<stdio.h>
#include<math.h>
int main(){
float a, b, c;
float x1, x2;
Ig: myfriendscallme_chicken

float delta;
scanf("%f %f %f", &a, &b, &c);
if(a!=0)
{
delta=b*b-4*a*c;
if(delta<0)
printf("VN");
else
if(0==delta)
{
x1=-b/(2*a);
printf("%.3f", x1);
}
else
{
x1=(-b-sqrt(delta))/(2*a);
x2=(-b+sqrt(delta))/(2*a);
if(x1 > x2)
{
printf("%.3f %.3f", x2, x1);
}
else
{
printf("%.3f %.3f", x1, x2);
}
}
}
Ig: myfriendscallme_chicken

else
{
if(b == 0)
{
if(c == 0)
{
printf("VSN");
}
else
{
printf("VN");
}
}
else
{
printf("%.3f", -c/b);
}
}
}
Bài tập
Viết chương trình thực hiện:

 Nhập hai số nguyên a, b cách nhau bởi dấu cách thể hiện tháng và năm
 In ra số ngày của tháng đó.

Input Format

 Hai số nguyên dương a, b cách nhau đúng một dấu cách.

Constraints

 1 <= a, b 
Ig: myfriendscallme_chicken

Output Format

 Nếu nhập vào a không thuộc đoạn [1, 12] hoặc b là số <=0 thì báo "Du lieu sai."
 Ngược lại in ra thông báo "Thang a nam b co X ngay."
 X là số ngày của tháng a trong năm b.

o Lưu ý tháng 2 năm nhuận có 29 ngày
o Năm nhuận là năm thỏa mãn a) hoặc b)

a) Nó lặp lại 4 năm 1 lần, nhưng không lặp lại mỗi 100 năm. (chia hết cho 4
nhưng không chia hết cho 100)

b) Năm nhuận cũng lặp lại mỗi 400 năm. (chia hết cho 400)

For example:

Input Result

2 Thang 2 nam 2022 co 28 ngay.


2022

Lời giải đúng


#include <stdio.h>
int main(){
int a, b;
scanf("%d%d", &a, &b);
if(b>0){
switch (a){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: printf("Thang %d nam %d co 31 ngay.", a, b); break;
case 4:
Ig: myfriendscallme_chicken

case 6:
case 9:
case 11: printf("Thang %d nam %d co 30 ngay.", a, b); break;
case 2:
if((b%4==0 && b%100 != 0) || (b % 400 == 0)) printf("Thang 2
nam %d co 29 ngay.", b);
else printf("Thang 2 nam %d co 28 ngay.", b); break;
default: printf("Du lieu sai."); }
}else printf("Du lieu sai.");
}
Bài tập
Nhập vào 3 số thực a, b, c.
Kiểm tra 3 số đó có tạo thành 3 cạnh của một tam giác không. 
Nếu đúng thì phân loại xem tam giác đó là tam giác gì trong các loại: Cân, đều, vuông, thường.
Nếu không thì đưa ra thông báo "Khong phai tam giac." //có dấu chấm ở cuối thống bào
Input Format

 3 số thực

Constraints

 a, b, c là các số thực

Output Format

 In ra một trong các phân loại: "Tam giac can."; "Tam giac deu."; "Tam giac
vuong."; "Tam giac thuong."
 Hoặc in ra thông báo lỗi: "Khong phai tam giac."
 //Chú ý có dấu chấm ở cuối các thông báo. Riêng trường hợp tam giác đều thì có cả
thông báo "Tam giac can." ở dòng trên.

Example:
- Input: 4 4 4
- Output:
Tam giac can.
Tam giac deu.
For example:
Ig: myfriendscallme_chicken

Input Result

-1 2 3 Khong phai tam giac.

Lời giải đúng


#include <stdio.h>

int main()
{
float a,b,c;
scanf("%f%f%f", &a, &b, &c);
if( a<b+c && b<a+c && c<a+b )
{
if( a*a==b*b+c*c || b*b==a*a+c*c || c*c== a*a+b*b)
printf("Tam giac vuong.");
else if(a==b || a==c || b==c)
{
printf("Tam giac can.");
if(a==b && b==c)
printf("\nTam giac deu.");
}
else
{
printf("Tam giac thuong.");
}
}
else
printf("Khong phai tam giac.");
}
Ig: myfriendscallme_chicken

Bai tap
Nhập một số nguyên chỉ điểm ở thang 10.
In ra xếp loại dựa trên điểm như sau:

 Nếu điểm từ 0~3 in ra Kem


 Nếu là 4 in ra Yeu
 Nếu từ 5~6 in ra TB
 Nếu từ 7~8 in ra Kha
 Nếu từ 9~10 in ra Gioi
 Nếu điểm không thuộc phạm vi nào bên trên thì in ra Error

Input Format

 Một số nguyên chỉ điểm (d) theo thang 10.

Constraints

 0 <= d <= 10

Output Format

 In ra một trong các phân loại: Kem, Yeu, TB, Kha, Gioi


 Hoặc in ra thông báo lỗi: Error
 In đúng chữ hoa thường, không in thêm bất kì kí tự nào khác.

For example:

Test Input Result

- -1 Error
1_Error

2_Kem 2 Kem

5_TB 5 TB

8_Kha 8 Kha

10_Gioi 10 Gioi

Loi giai dung


#include <stdio.h>
int main(){
int d;
scanf("%d", &d);
Ig: myfriendscallme_chicken

if ((d < 0) || (d > 10)){


printf("Error");
}
else
switch(d)
{
case 0:
case 1:
case 2:
case 3: printf("Kem"); break;
case 4: printf("Yeu"); break;
case 5:
case 6: printf("TB"); break;
case 7:
case 8: printf("Kha"); break;
case 9:
case 10: printf("Gioi"); break;
default: printf("Error"); break;
}
}
Bai tap
Viết chương trình tính tiền phạt khi trả sách muộn cho thư viện theo công thức sau:

 Nếu trả trước hoặc đúng ngày thì tiền phạt là 0


 Nếu trả muộn hơn ngày hẹn trả nhưng trong cùng tháng thì tiền phạt là 5000 * số ngày trả
muộn
 Nếu trả muộn hơn tháng hẹn trả nhưng trong cùng năm thì tiền phạt là 100000 * số tháng trả
muộn
 Nếu trả muộn hơn năm hẹn trả thì số tiền phạt là 1000000

Đầu vào:
Ig: myfriendscallme_chicken

 Dòng 1 chứa ba số nguyên là ngày, tháng, năm trả sách


 Dòng 2 chứa ba số nguyên là ngày, tháng, năm hẹn trả sách

Ràng buộc: Dữ liệu đầu vào đảm bảo là ngày tháng năm hợp lệ
Đầu ra: Số tiền phạt
For example:

Input Result

3 4 10000
2022
1 4
2022

Loi giai dung


#include <stdio.h>

int main()
{
int ngaytra, thangtra, namtra;
int ngaymuon, thangmuon, nammuon;
int ngayhople;
scanf("%d%d%d", &ngaytra, &thangtra, &namtra);
scanf("%d%d%d", &ngaymuon, &thangmuon, &nammuon);

switch(thangtra)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
Ig: myfriendscallme_chicken

case 12:
ngayhople = 31;
break;
case 4:
case 6:
case 9:
case 11:
ngayhople = 30;
break;
case 2:
if(((namtra % 4 == 0) && (namtra % 100 != 0)) || (namtra % 400 == 0))
{
ngayhople = 29;
}
else
{
ngayhople = 28;
}
break;
default:
printf("0");
return 0;
break;
}
if((ngaytra < 0) || (ngaytra > ngayhople))
{
printf("0");
Ig: myfriendscallme_chicken

return 0;
}

switch(thangmuon)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
ngayhople = 31;
break;
case 4:
case 6:
case 9:
case 11:
ngayhople = 30;
break;
case 2:
if(((nammuon % 4 == 0) && (nammuon % 100 != 0)) || (nammuon %
400 == 0))
{
ngayhople = 29;
}
else
{
Ig: myfriendscallme_chicken

ngayhople = 28;
}
break;
default:
printf("0");
return 0;
break;
}

if((ngaymuon < 0) || (ngaymuon > ngayhople))


{
printf("0");
return 0;
}

if(namtra < nammuon)


{
printf("0");
return 0;
}
else if(namtra == nammuon)
{
if(thangtra < thangmuon)
{
printf("0");
return 0;
}
Ig: myfriendscallme_chicken

else if(thangtra == thangmuon)


{
if((ngaytra < ngaymuon) || (ngaytra == ngaymuon))
{
printf("0");
}
else
{
printf("%d", 5000 * (ngaytra - ngaymuon));
}
}
else
{
printf("%d", 100000 * (thangtra - thangmuon));
}
}
else
{
printf("1000000");
}
}
Bai tap
Viết chương trình tính tổng 1 dãy các số nguyên.
Biết rằng số nguyên đầu tiên nhập vào bằng lệnh scanf là số lượng các giá trị còn lại được nhập vào.
Chương trình cần đọc vào 1 giá trị tương ứng với mỗi lệnh scanf.
Dữ liệu nhập vào có thể là

5 100 200 300 400 500

trong đó 5 cho biết là có 5 số sau nó cần được tính tổng.


Dữ liệu in ra phải là:
Ig: myfriendscallme_chicken

1500

// Gợi ý giải thuật không dùng kiểu dl mảng

Nhập( n );

sum = 0;

Lặp lại n lần {

Nhập( x );

sum += x;

In( sum );
Input Format

 Số nguyên đầu tiên chỉ số lượng số cần tính tổng.


 Các số nguyên tiếp theo là các số cần được tính tổng.
 Hai số cách nhau 1 kí tự trắng.

Constraints

 Số lượng số cần tính tổng lớn hơn hoặc bằng 0.


 Số lượng các số nhập vào phải bằng số đầu tiên.

Output Format

 Số nguyên chỉ tổng các số.

For example:

Test Input Result

5-so 5 100 200 300 400 1500


500

Loi giai dung


#include <stdio.h>
int main()
{
int n;
int sum = 0;
Ig: myfriendscallme_chicken

int x;
scanf("%d", &n);
if(n >= 0)
{
for( ;n != 0; n = n - 1)
{
scanf("%d", &x);
sum = sum + x;
}
}
printf("%d", sum);
}
Bai tap
Viết chương trình nhập vào 2 số nguyên a, b. Tính trung bình cộng các số chẵn trong đoạn [a, b] hoặc [b,
a].
Input: 
a b trên cùng một dòng, cách nhau dấu cách.
Ví dụ: 5 12 hoặc 30 -8
Output: 
Trung bình cộng các số chẵn tìm được với độ chính xác 2 chữ số thập phân. Ví dụ: 30.00
Constrains:
+ các biến a, b kiểu nguyên.
+ trung bình cộng có độ chính xác 2 chữ số thập phân.
For example:

Input Result

9 1 5.00

Loi giai dung


#include <stdio.h>
#include <math.h>
int main()
Ig: myfriendscallme_chicken

{
int a, b, i, sum = 0, num = 0;
scanf("%d%d", &a, &b);
if(a > b){
for(i = b; i <= a; i = i + 1)
{
if(i % 2 == 0)
{
num = num + 1;
sum = sum + i;
}
}
printf("%.2f", (float)sum / (float)num);
}
else if(a == b)
{
if(a % 2 == 0)
{
printf("%.2f", (float)a);
}
else
{
printf("0.00");
}
}
else
{
Ig: myfriendscallme_chicken

for(i = a; i <= b; i = i + 1)
{
if(i % 2 == 0)
{
num = num + 1;
sum = sum + i;
}
}
printf("%.2f", (float)sum / (float)num);
}

}
Bai tap

Lời giải đúng

#include <stdio.h>
#include <math.h>
int main(){
long n;
scanf("%ld", &n);
if(n < 0)
{
Ig: myfriendscallme_chicken

printf("Error.");
}
else
{
double s = 0.00f;
int dem;
for(dem = 0; dem < n; dem = dem + 1)
{
s = sqrt((2 + s));
}
printf("%.2lf", s);
}
}
Bài tập x op y
Lời giải đúng

#include <stdio.h>
int main()
{
unsigned int x, y;
Ig: myfriendscallme_chicken

char op;
if(scanf("%d%c%d", &x, &op, &y) == 3)
{
if(((0 <= x) && (x <= 3000000000)) && ((0 <= y) && (y <=
3000000000)))
{
if(op == '+')
{
printf("%.2f", (float)x + (float)y);
}
else if(op == '-')
{
printf("%.2f", (float)x - (float)y);
}
else if(op == '*')
{
printf("%.2f", (float)x * (float)y);
}
else if(op == '/')
{
if(y == 0)
{
printf("error");
}
else
{
printf("%.2f", (float)x / (float)y);
}
}
else if(op == '%')
Ig: myfriendscallme_chicken

{
if(y == 0)
{
printf("error");
}
else
{
printf("%.2f", (float)(x%y));
}
}
else
{
printf("error");
}
}
else
{
printf("error");
}
}
else
{
printf("error");
}
}
Bai tap
Viết chương trình nhập vào 2 số nguyên a, b. In ra các số nguyên tố trong đoạn [a, b] hoặc [b, a]. Nếu
trong đoạn này không có số nguyên tố thì in ra thông báo "Khong co". Biết số nguyên tố là số nguyên
dương >=2 và chỉ chia hết cho 1 và chính nó.
Input: a, b là số nguyên cách nhau dấu cách.
Output: các số nguyên tố tìm được viết trên một dòng, cách nhau dấu cách. Hoặc thông báo "Khong co".
Constrains: các số kiểu int 
Ig: myfriendscallme_chicken

Ví dụ 1: 
+ Input
a= -30, b=-9  
+ Output
Khong co
Ví dụ 2: 
+ Input
a= 0, b=9  
+ Output
2357
Ví dụ 2: 
+ Input
a= 9, b=0  
+ Output
7532

For example:

Input Result

-9 - Khong co
33

28 18 23 19

Loi giai dung


#include <stdio.h>
#include <math.h>
int main(){
int a, b;
scanf("%d %d", &a, &b);
if(a == b)
{
if(a < 2)
{
Ig: myfriendscallme_chicken

printf("Khong co");
}
else
{
int lasonguyento = 1;
int i;
for( i = 2; i <= a - 1; i = i + 1)
{
if(a % i == 0)
{
lasonguyento = 0;
break;
}
}
if(lasonguyento == 1)
{
printf("%d", a);
}
else
{
printf("Khong co");
}
}
}
else if(a > b)
{
int daykhongcosonguyento = 1;
Ig: myfriendscallme_chicken

int i;
for(i = a; i >= b; i = i - 1)
{
if(i < 2)
{
}
else
{
int lasonguyento = 1;
int j;
for( j = 2; j <= i - 1; j = j + 1)
{
if(i % j == 0)
{
lasonguyento = 0;
break;
}
}
if(lasonguyento == 1)
{
daykhongcosonguyento = 0;
printf("%d ", i);
}
else
{
}
Ig: myfriendscallme_chicken

}
}
if(daykhongcosonguyento == 1)
{
printf("Khong co");
}
}
else //a < b
{
int daykhongcosonguyento = 1;
int i;
for(i = a; i <= b; i = i + 1)
{
if(i < 2)
{
}
else
{
int lasonguyento = 1;
int j;
for( j = 2; j <= i - 1; j = j + 1)
{
if(i % j == 0)
{
lasonguyento = 0;
break;
}
Ig: myfriendscallme_chicken

}
if(lasonguyento == 1)
{
daykhongcosonguyento = 0;
printf("%d ", i);
}
else
{
}
}
}
if(daykhongcosonguyento == 1)
{
printf("Khong co");
}
}
}
Bài tập( Bài xét 3 cạnh có phải tam giác ko)
Ig: myfriendscallme_chicken

Lời Giải Đúng


#include <math.h>
#include<stdio.h>
int main() {
float a, b, c, p, cv, s;
scanf("%f %f %f", &a, &b, &c);
if (a + b > c && a + c > b && b + c > a) {
// Tính chu vi tam giác
cv = a + b + c;
p = (a + b + c) / 2.0;
// Tính diện tích tam giác
s = sqrt(p * (p - a) * (p - b) * (p - c));
// In kết quả ra màn hình
printf("Dien tich tam giac: %.2f\n", s);
printf("Chu vi tam giac: %.2f\n", cv); }
else {
printf("DL sai\n");
}
return 0;
}
Bài Số Hoàn Hảo
Ig: myfriendscallme_chicken

Lời Giải Đúng


#include <stdio.h>
#include <math.h>
int main(){
int n;
scanf("%d", &n);
if(n<=0){
printf("%d khong la so hoan hao", n);
}
else{
int i;
int sum = 0;
for(i = 1; i <= n/2; i=i+1){
if(n%i==0){
sum += i;
}
}
if(sum == n){
printf("%d la so hoan hao", n);
Ig: myfriendscallme_chicken

}
else{
printf("%d khong la so hoan hao", n);
}
}
return 0;
}
Bài chuyển số thập phân sang nhị phân

Lời giải đúng


#include <stdio.h>
#include <math.h>
Ig: myfriendscallme_chicken

void thapphan_nhiphan(int n)
{
if(n <= 0)
{
return;
}
else
{
printf("%d:", n);
int i = 15;
while(n < (int)pow(2, i))
{
i--;
}
for(; i >= 0; i--)
{
printf(" ");
if(n >= (int)pow(2, i))
{
printf("1");
n -= (int)pow(2,i);
}
else
{
printf("0");
}
}
Ig: myfriendscallme_chicken

}
}

int main()
{
int a,b,i;
scanf("%d%d", &a, &b);
if(a >= b)
{
for(i = b; i < a; i++)
{
thapphan_nhiphan(i);
printf("\n");
}
thapphan_nhiphan(a);
}
else
{
for(i = a; i < b; i++)
{
thapphan_nhiphan(i);
printf("\n");
}
thapphan_nhiphan(b);
}
return 0;
}
Ig: myfriendscallme_chicken

Bài tập kiểm tra số nguyên dương n có toàn số chẵn

Lời giải đúng


#include <stdio.h>
#include <math.h>
void kiemtra(int n)
{
if( n < 0 )
{
printf("Error");
}
else
{
while(n != 0)
{
int a = n%10;
if(a%2 != 0)
Ig: myfriendscallme_chicken

{
printf("No");
return;
}
n /= 10;
}
printf("Yes");
}
}
int main(){
int x, y, z;
scanf("%d%d%d", &x, &y, &z);
kiemtra(x);
printf(" ");
kiemtra(y);
printf(" ");
kiemtra(z);
return 0;
}
Bài ước số chung
Ig: myfriendscallme_chicken

Lời Giải Đúng


#include <stdio.h>
int ucln(int a, int b)
{
while(a != b)
{
if(a > b)
{
a = a - b;
}
else
{
b = b - a;
}
}
return b;
}

int main()
{
int a,b,c;
scanf("%d%d%d", &a, &b, &c);
if((a <= 0) || (b <= 0) || (c <= 0))
{
printf("DL sai.");
}
else
Ig: myfriendscallme_chicken

{
a = ucln(a, b);
a = ucln(a, c);
printf("%d", a);
}
return 0;
}
Bài hệ phương trình bậc nhất 2 ẩn

Lời Giải Đúng


#include <stdio.h>
#include <math.h>
int main(){
float a1,b1,c1,a2,b2,c2,b3,c3,x,y;
scanf("%f%f%f", &a1,&b1,&c1);
scanf("%f%f%f", &a2,&b2,&c2);
b3 = b2 * (a1 / a2);
Ig: myfriendscallme_chicken

c3 = c2 * (a1 / a2);
b3 = b1 - b3;
c3 = c1 - c3;
if(b3 == 0)
{
if(c3 == 0)
{
printf("VSN");
}
else
{
printf("VN");
}
}
else
{
y = (c3 / b3);
x = (c1 - (b1 * y) ) / a1;
printf("%.5f %.5f", x, y);
}
}
Bài trung bình cộng số chẵn số lẻ
Ig: myfriendscallme_chicken

Lời giải đúng


#include <stdio.h>
int main()
{
int a,b,x,y;
float ab = 0,xy = 0, c;
scanf("%d%d", &a, &b);
scanf("%d%d", &x, &y);
int i;
if((a == b) && (a % 2 != 0))
{
printf("NO");
Ig: myfriendscallme_chicken

}
else
{
c = 0;
if(a > b)
{
for(i = a; i >= b; i--)
{
if(i % 2 == 0)
{
ab = ab + i;
c = c + 1;
}
}
}
else
{
for(i = a; i <= b; i++)
{
if(i % 2 == 0)
{
ab = ab + i;
c = c + 1;
}
}
}
ab = ab / c;
Ig: myfriendscallme_chicken

printf("%.2f", ab);
}
printf("\n");
if((x == y) && (x % 2 == 0))
{
printf("NO");
}
else
{
c = 0;
if(x > y)
{
for(i = x; i >= y; i--)
{
if(i % 2 != 0)
{
xy = xy + i;
c = c + 1;
}
}
}
else
{
for(i = x; i <= y; i++)
{
if(i % 2 != 0)
{
Ig: myfriendscallme_chicken

xy = xy + i;
c = c + 1;
}
}
}
xy = xy / c;
printf("%.2f", xy);
}
}
Bài tập: Viết chương trình nhập vào 2 số nguyên a, b. Tính tổng các số lẻ trong đoạn [a,
b] hoặc [b, a]
Input: 
a b trên cùng một dòng, cách nhau dấu cách.
Ví dụ: 5 12 hoặc 30 -8
Output: 
Tổng các số lẻ tìm được. Ví dụ: 30
Constrains:
các biến kiểu nguyên

For example:

Input Result

9 1 25

Lời Giải đúng


#include <stdio.h>
#include <math.h>
int main(){
int a,b,i,s=0;
scanf("%d%d", &a,&b);
if(a<b){
for(i=a;i<=b;i++){
Ig: myfriendscallme_chicken

if(i%2!=0){
s=s+i;
}
}
}
else{
for(i=b;i<=a;i++){
if(i%2!=0){
s=s+i;
}
}
}
printf("%d",s);
return 0;
}
Bài số nguyên tố
Ig: myfriendscallme_chicken

Lời Giải đúng


#include <stdio.h>
#include <math.h>
int main(){
int a, b;
scanf("%d %d", &a, &b);
if(a == b)
{
if(a < 2)
{
printf("Khong co");
}
Ig: myfriendscallme_chicken

else
{
int lasonguyento = 1;
int i;
for( i = 2; i <= a - 1; i = i + 1)
{
if(a % i == 0)
{
lasonguyento = 0;
break;
}
}
if(lasonguyento == 1)
{
printf("%d", a);
}
else
{
printf("Khong co");
}
}
}
else if(a > b)
{
int daykhongcosonguyento = 1;
int i;
for(i = b; i <= a; i = i + 1)
Ig: myfriendscallme_chicken

{
if(i < 2)
{
}
else
{
int lasonguyento = 1;
int j;
for( j = 2; j <= i - 1; j = j + 1)
{
if(i % j == 0)
{
lasonguyento = 0;
break;
}
}
if(lasonguyento == 1)
{
daykhongcosonguyento = 0;
printf("%d ", i);
}
else
{
}

}
}
Ig: myfriendscallme_chicken

if(daykhongcosonguyento == 1)
{
printf("Khong co");
}
}
else //a < b
{
int daykhongcosonguyento = 1;
int i;
for(i = a; i <= b; i = i + 1)
{
if(i < 2)
{
}
else
{
int lasonguyento = 1;
int j;
for( j = 2; j <= i - 1; j = j + 1)
{
if(i % j == 0)
{
lasonguyento = 0;
break;
}
}
if(lasonguyento == 1)
Ig: myfriendscallme_chicken

{
daykhongcosonguyento = 0;
printf("%d ", i);
}
else
{
}
}
}
if(daykhongcosonguyento == 1)
{
printf("Khong co");
}
}
}
Bài bảng cửu chương
Ig: myfriendscallme_chicken

Lời Giải đúng


#include<stdio.h>
int main()
{
int a,b,i,j;
scanf("%d%d", &a,&b);
for(i=a; i<=b; i = i + 1)
{
Ig: myfriendscallme_chicken

for(j=1; j<=9; j++)


{
printf("%dx%d=%d\n",i,j,i*j);
}
}
printf("\n");
return 0;
}
Bài tập tam giác *

Lời Giải đúng


Ig: myfriendscallme_chicken

#include <stdio.h>
int main() {
int n;
scanf("%d", &n);

for(int i = 1; i <= n; i++)


{
for(int j = 1; j <= n-i; j++)
printf(" ");

for(int j = 1; j <= i; j++)


printf("* ");

printf("\n");
}
return 0;
}
Bài tập bảng cửu chương
Ig: myfriendscallme_chicken

Lời Giải đúng


#include<stdio.h>
int main()
{
int a, b;
scanf("%d%d", &a, &b);

for(int i = a; i <= b; i++)


{
Ig: myfriendscallme_chicken

for(int j = a; j <= 9;j++)


if(j >= i)
printf("%dx%d=%d\n", i, j, i*j);
}
printf("\n");

return 0;
}
Bài tập đếm số lượng và tính tổng

Lời Giải đúng


#include <stdio.h>
int main()
{
int a, b, s = 0;
scanf("%d%d", &a, &b);
Ig: myfriendscallme_chicken

int dem = 0;
if(a < b)
{
for(int i = a; i <= b; i++)
if(i%2 != 0)
{
s+=i;
dem++;
}
}
else
{
for(int i = a; i >= b; i--)
if(i%2 != 0)
{
s+=i;
dem++;
}
}
printf("%d %d", dem, s);
return 0;
}
Bài tập từ trái qua phải
Ig: myfriendscallme_chicken

Lời Giải đúng


#include <stdio.h>
#include <math.h>

void hienthi(int n)
{
if(n < 0)
{
printf("Error");
}
else
Ig: myfriendscallme_chicken

{
int x10 = 9;
int soluong = 0;
while(x10 >= 0)
{
int kiemtra = n / (int)pow(10, x10);
if(kiemtra != 0)
{
n = n - (kiemtra * (int)pow(10, x10));
if(kiemtra % 2 != 0)
{
printf("%d", kiemtra);
if(n != 0)
{
printf(" ");
}
soluong = soluong + 1;
}
}
x10 = x10 - 1;
}
if(soluong == 0)
{
printf("No");
}
}
}
Ig: myfriendscallme_chicken

int main()
{
int x,y,z;
scanf("%d%d%d", &x, &y, &z);
hienthi(x);
printf("\n");
hienthi(y);
printf("\n");
hienthi(z);
}
Bài *****
Viết hàm nhận đầu vào là số nguyên h khác 0. In ra tam giác cân với chiều cao |h| bằng các ký tự * theo
quy tắc sau. Nếu h>0 thì đáy của tam giác ở phía dưới. Nếu h<0 thì đáy của tam giác ở phía trên.
Ví dụ: h=-5 thì tam giác cần vẽ là 
 *********
  *******
   *****
    ***
     *   
Với h=5 thì tam giác cần vẽ là
  *
   ***
  *****
 *******
*********
Viết chương trình nhập vào 3 số nguyên x, y, z. Dùng hàm trên để vẽ các tam giác với chiều cao tương
ứng với |x|, |y|, |z|. 
Input: 3 số nguyên x, y, z cách nhau dấu cách.
Output: 
Dòng 1 in số nguyên x
Từ dòng 2 in ra tam giác với chiều cao |x|
Tiếp theo đến y, z
Constrains: các dữ liệu là kiểu số nguyên
Ig: myfriendscallme_chicken

For example:

Input Result

6 -8 1 6
*
***
*****
*******
*********
***********
-8
***************
*************
***********
*********
*******
*****
***
*
1
*

Lời Giải đúng


#include<stdio.h>
void tgcungchieu(int n) {
int i,j;
for(i=1;i<=n;i++) {
for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
}
void tgnguocchieu(int n) {
int i,j;
Ig: myfriendscallme_chicken

for(i=1;i<=n;i++){
for(j=1;j<=2*n-1;j++) {
if(i==1)
printf("*");
else if((j<i)||(j>2*n-1+1-i))
printf(" ");
else
printf("*");
}
printf("\n");
}
}
void chontg(int n) {
if(n>0) {
printf("%d\n",n);
tgcungchieu(n);
}
else if(n<0) {
printf("%d\n",n);
n=-n;
tgnguocchieu(n);
}
}
int main() {
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
chontg(x);
Ig: myfriendscallme_chicken

chontg(y);
chontg(z);
return 0;
}
Bài Fibonacci

Lời giải đúng


#include <stdio.h>
#include <math.h>
int fibonacci(int n) {
int f0 = 0;
int f1 = 1;
int fn = 1;
int i;

if (n < 0) {
return -1;
} else if (n == 0 || n == 1) {
return n;
Ig: myfriendscallme_chicken

} else {
for (i = 2; i < n; i++) {
f0 = f1;
f1 = fn;
fn = f0 + f1;
}
}
return fn;
}

int main() {
int a;
int i;
scanf("%d", &a);
for (i = 1; i <= a; i++) {
printf("%d ", fibonacci(i));
}
}
Bài tập viết hàm tìm chữ số lớn nhất của một số nguyên dương n
In put
109 -2 88
Result
9 Error 8
Ig: myfriendscallme_chicken

Lời Giải Đúng


#include<stdio.h>
int slnx(int x)
{
int i;
int max = 0;
if(x == 0)
max = 0;
do
{
i = x % 10;
if(i > max)
{
max = i;
}
}while(x /= 10);
Ig: myfriendscallme_chicken

return max;
}
int slny(int y)
{
int i;
int max = 0;
if(y == 0)
max = 0;
do
{
i = y % 10;
if(i > max)
{
max = i;
}
}while(y /= 10);
return max;
}
int slnz(int z)
{
int i;
int max = 0;
if(z == 0)
max = 0;
do
{
i = z % 10;
Ig: myfriendscallme_chicken

if(i > max)


{
max = i;
}
}while(z /= 10);
return max;
}
int main(){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
int maxx=slnx(x);
int maxy=slny(y);
int maxz=slnz(z);
if(x>=0){
printf("%d ", maxx);
}
else{
printf("Error ");
}
if(y>=0){
printf("%d ", maxy);
}
else{
printf("Error ");
}
if(z>=0){
printf("%d ", maxz);
Ig: myfriendscallme_chicken

}
else{
printf("Error ");
}
}
Bài tập: Kiểm tra các chữ số của một số nguyên dương n có các chữ số tăng dần
từ trái qua phải không?

Lời Giải Đúng


#include <stdio.h>
#include <math.h>
void kiemtra(int n)
{
if( n < 0 )
{
printf("Error");
Ig: myfriendscallme_chicken

}
else
{
int x10 = 24;
int goc = 0;
while(x10 >= 0)
{
int a = n / (int)pow(10, x10);
if(a < goc)
{
printf("No");
return;
}
else
{
goc = a;
}
n = n - (a * (int)pow(10, x10));
x10 = x10 - 1;
}
printf("Yes");
}
}
int main(){
int x, y, z;
scanf("%d%d%d", &x, &y, &z);
kiemtra(x);
Ig: myfriendscallme_chicken

printf(" ");
kiemtra(y);
printf(" ");
kiemtra(z);
return 0;
}

You might also like