Tài liệu hướng dẫn tự học môn lập trình c cơ bản để phát triển lên các ngôn ngữ cao cấp khác. hướng dẫn chi tiết để tự học lập trình C hiệu quả hơn. Sinh viên trong ngành ngoài ngành đều học dễ dàng được
Trang 1HƯỚNG DẪN LẬP TRÌNH CODE C
0.Viết hàm nhập/xuất mảng a các số nguyên có n phần từ bàn phím Điều kiện giá trị của n phải thỏa mãn 1<n<100 Nếu không thỏa mãn điều kiện trên thì yêu cầu nhập lại.
Code:
#include<stdio.h>
void NhapMang(int a[],int n) {
int i;
for(i=0; i<n; i++) {
printf("Nhap a[%d]: ",i);
scanf("%d",&a[i]);
}
}
void XuatMang(int a[],int n) {
printf("Cac phan tu co trong mang la:\n");
Trang 2Code c:
float TbDuong(int a[],int n) {
int i;
Trang 44 Viết hàm tính giá trị trung bình các số hoàn hảo trong mảng một chiều
a có n phần tử Hàm trả về giá trị trung bình của các phần tử là số hoàn hảo Ngược lại hàm trả về giá trị 0.
Trang 6Code c:
float TbChanChiaBa(int a[],int n) {
int i;
float s = 0,dem = 0,tb;
Trang 7for(i=0; i<n; i++) {
if(a[i]%2 == 0 && a[i]%3 == 0) {
Code c:
float TbChanChiaBa(int a[],int n) {
int i;
float s = 0,dem = 0,tb;
for(i=0; i<n; i++) {
if(a[i]%2 != 0 && a[i]%5 == 0) {
Trang 10printf("Cac so nguyen to:");
for(i=1; i<n; i++) {
Trang 11for(i=1; i<n; i++) {
if(nguyento(a[i]) && a[i]<k)
dem++;
}
if(dem == 0)
Trang 12printf("Cac so chinh phuowng thoa man:");
for(i=0; i<n; i++) {
if(chinhPhuong(a[i]) && (i%2 != 0)) {
Trang 14int viTriAmMax(int a[],int n) {
for(i=0; i<n; i++) {
if(a[i]<0 && a[i]>max) {
Trang 1620 Viết hàm đếm số lần xuất hiện của phần tử x trong mảng một chiều a
Trang 17if(a[j]%2!=0 && a[j]<a[i])
Trang 18void ChenX(int a[], int &n,int x,int k) {
Trang 20}
return dem;
}
26 Cho mảng a gồm n số nguyên có thứ tự tăng dần Viết hàm chèn một
số nguyên X vào mảng sao cho mảng vẫn có thứ tự tăng dần.
Code c:
int ChenX(int a[], int &n, int x) {
int i, j;
for(i=0; i<n; i++) {
if((a[i] >= x && i == 0)) {//neu x nho hon tat ca cac phan tu trong mang n++;
Trang 22break;
}
}
for(i=0; i<n; i++) {//tim so chan lan nhat
if((a[i]%2 == 0 && a[i]>max)) {
max = a[i];
}
}
for(i=0; i<n; i++) {//tim so le nho nhat lon hon moi so chan
if((a[i] > max && a[i]%2 != 0)) {
Trang 23for(int i=0; i<n-1; i++)
for(i=0; i<n; i++) {//tim so le nho nhat
if((a[i]%2 != 0 && a[i]<min)) {
Trang 24void NhapMang(int A[], unsigned int n) {
for(int i = 0; i<n; i++)
void XuatMang(int A[], unsigned int n) {
for(int i = 0; i<n; i++)
printf("%d\t",A[i]);
}
//dem so lan xuat hien cua x trong A
unsigned int Count(int A[], unsigned int n, int x){
unsigned int temp = 0;
for(int i = 0; i<n; i++)
if(A[i]==x)
temp++;
return temp;
}
//tim phan tu xuat hien nhat lan nhat trong A
unsigned int Count(int A[], unsigned int n) {
unsigned int temp1, temp = Count(A,n,A[0]), index = 0;
for(int i = 1; i<n; i++)
Trang 2530 Viết hàm kiểm tra mảng a có n phần tử có phải là mảng đối xứng hay không?
Trang 27}
}
for(i=0; i<n; i++) {
if(a[i]>0 && a[i]<min)
for(i=0; i<n; i++) {
if(a[i]<0 && a[i]>max)
max = a[i];
}
return max;
}
Trang 2834 Viết hàm tách các số nguyên tố có trong mảng a đưa vào mảng b.
Trang 29for(i=0; i<n-1; i++) {
//sap xep giam dan
for(i=n-1; i>0; i ) {// sap xep so khong xuong cac vi tri cuoi
if(a[i-1] == 0 && a[i] != 0) {
for(j=i-1; j<n; j++) {
tam = a[j];
a[j] = a[j+1];
Trang 311 Viết hàm nhập vào một số nguyên x gồm ba chữ số và xuất ra màn hình chữ số lớn nhất ở vị trí nào? Ví dụ: x = 291 Chữ số lớn nhất là 9 nằm ở hàng chục.
Trang 34int main() {
int ngay, thang;
printf("Nhap thang: ");
scanf("%d",&thang);
if(thang >=1 && thang <=12) {
printf("Thang %d hop le",thang);
if(thang == 1 || thang == 3 || thang == 5 || thang == 7 || tháng == 8 || thang == 10 || thang == 12 || )
Trang 35if(n==0||n==1) return 0; int i;
for(i=2;i<=sqrt(n);i++) if(n%i==0) return 0;
printf("%5d",i); count++; }
Trang 37printf("\nBoi chung nho nhat la %d",(x*y)/a);
Trang 38là một số phong phú Viết hàm liệt kê các số phong phú trong đoạn [L, R] L, R <= 105 Ví dụ: [L, R] = [1, 50] Từ 1 đến 50 có 9 số phong phú là: 12, 18, 20, 24, 30, 36, 40, 42, 48.
Trang 39printf("Cac so phong phu:");
for(i=l; i<=r; i++) {
Trang 40int F(int n) {
if(n==0) return 0;
else if(n==1 || n==2) return 1;
Trang 41return F(n-1)+F(n-2);
}
13 Viết hàm tính giá trị của đa thức: 1 0 1 Pn (x) = a n x n + a n − 1 x
n − + + a x + a tại giá trị x với bậc n, giá trị x và các hệ số của đa thức nhập từ bàn phím.
#include<stdio.h>
#include<string.h>
Trang 42void XoaTrai(char xau[]) {
int i=0,j;
while(xau[i] == ' ') {
if(xau[i] == ' ') {
for(j=i; j<strlen(xau); j++) { xau[j] = xau[j+1]; }
Trang 43for(i=0; i<strlen(xau)-1; i++) {
if(xau[i] != ' ' && xau[i+1] == ' ' && xau[i+2] == ' ') {
Trang 44for(i=0; i<strlen(s); i++) {
if(s[i] == ' ' && s[i+1] != ' ' && s[i+1] != '\0') {
for(i=1; i<strlen(s); i++) {
if(s[i] == ' ' && s[i+1] != ' ' && s[i+1] != '\0') {
dem++;
Trang 454 Viết hàm kiểm tra xem xâu s có phải toàn số hay không Ví dụ: s =
”234 tru 342” xâu s không phải xâu toàn số s = ”23464562134” xâu s là xâu toàn số.
for(i=0; i<strlen(s); i++) {
if(s[i] >= '0' && s[i] <= '9') {
ok = 1;
} else {
Trang 486 Viết hàm đếm số từ trong xâu s bắt đầu bằng 2 ký tự ‘TH’ Ví dụ: s =
”THang THua hay THang Thieu” ◊ Kết quả là 3.
for(i=0; i<strlen(s)-1; i++) {
if(s[i] == 'T' && s[i+1] == 'H')
Trang 497 Viết hàm đổi tất cả các ký tự có trong xâu s thành chữ thường (không dùng hàm strlwr) Ví dụ: s = ”Nhap Mon LAP Trinh C” Kết quả là: s =
”nhap mon lap trinh c”
for(i=0; i<strlen(s); i++) {
if(s[i] >='A' && s[i] <='Z')
Trang 508 Viết hàm đổi tất cả các ký tự có trong xâu s thành chữ HOA (không dùng hàm strupr) Ví dụ: s = ”Nhap Mon LAP Trinh C” Kết quả là: s =
”NHAP MON LAP TRINH C”
for(i=0; i<strlen(s); i++) {
if(s[i] >='a' && s[i] <='z')
Trang 519 Viết hàm đổi những ký tự đầu tiên của mỗi từ trong xâu s thành chữ
in HOA Ví dụ: s = ”nhap mon lap trinh c” Kết quả s = ”Nhap Mon Lap Trinh C”
for(i=0; i<strlen(s); i++) {
if(s[i] ==' ' && s[i+1] !=' ')
Trang 52Ví dụ: s = ”Hoc Hoc nua Hoc mai” Nếu word = ”Hoc” Vị trí đầu tiên ◊
xuất hiện là vị trí số 1 Nếu word=”HOC” ◊ Kết quả là -1.
Code c:
int Dem(char s[],char s2[]) {
int i,dem = 0,ok=1;
for(i=0; i<strlen(s); i++) {
Trang 5311 Viết hàm trả về ký tự xuất hiện nhiều nhất trong xâu s Ví dụ: s =
”a3b3c3d3” Kết quả trả về là 4 (Kí tự ’3’ xuất hiện 4 lần).
Trang 54for(i=0; i<=n; i++) {
Trang 55for(i=0; i<len-1; i++) {
if((s[i]==' ') && (s[i+1]!=' ')) {
int j=i+1;
Trang 56int dem=0;
while((s[j]!=' ') && (s[j]!='\0')) { dem++;
for(i=maxx-1; i<len-1; i++) {
if((s[i]==' ') && (s[i+1]!=' ')) {
Trang 57int j=i+1;
int de=0;
while((s[j]!=' ') && (s[j]!='\0')) { de++;
Trang 58temp = 1;// moi lan lap i gan temp = 1
for(j=i-1;j>=0;j )// xet tu ky tu truoc tro di den xau[0]
Trang 59if(ch[0] >='a' && ch[0] <= 'z') {
for(i=0; i<strlen(s); i++) {
Trang 60if(ch[0] >='A' && ch[0] <= 'Z') {
for(i=0; i<strlen(s); i++) {
Trang 6115 Viết hàm xóa tất cả các ký tự ch có trong xâu s (Không kể chữ thường hay chữ HOA) Ví dụ: s = ”Nhap mon lap trinh C” Nếu ch = ’n’
◊ Kết quả sau khi xóa tất cả ký tự ’n’ là s = ”hap mo lap trih C”
Trang 6216 Viết hàm kiểm tra xâu s có phải là xâu đối xứng hay không? Ví dụ: s
= ”abcdcba” ◊ s là xâu đối xứng s = ”abdc” s không là xâu đối xứng. ◊
Trang 6317 Viết hàm đếm xem xâu s1 xuất hiện bao nhiêu lần trong xâu s Ví dụ:
s = ”Hoc Hoc nua Hoc mai” Nếu s1 = ”Hoc” thì kết quả là: 3 Nếu s1 =
Trang 64for(i=0; i<strlen(s); i++) {
if(s[i] == s2[0]) {
ok = 1;
for(j=0; j<strlen(s2); j++) { if(s2[j] != s[i+j]) {
ok = 0; break; }