Note Đóng lại

Tổng hợp bài tập lập trình C

Dãy Fibonacci trong C

Chương trình in dãy Fibonacci không sử dụng hàm đệ qui trong C

#include<stdio.h>  
#include<conio.h>  

int main()  
{  
 int n1=0,n2=1,n3,i,sopt;  
  
 printf("Ban hay nhap so phan tu trong day Fibonacci: ");  
 scanf("%d",&sopt);  
 printf("\n%d %d",n1,n2);  //in hai so 0 va 1  
  
 for(i=2;i<sopt;++i)   //vong lap bat dau tu 2 boi vi 0 va 1 da duoc in 
 {  
  n3=n1+n2;  
  printf(" %d",n3);  
  n1=n2;  
  n2=n3;  
 }  
 
 printf("\n\n===========================\n");
 printf("Viethoang blog chuc cac ban hoc tot!");
getch();  
}  

Chương trình in dãy Fibonacci sử dụng hàm đệ qui trong C

#include<stdio.h>  
#include<conio.h>  

// khai bao ham indayFibonacci
void indayFibonacci(int n){  
    static int n1=0,n2=1,n3;  
    if(n>0){  
         n3 = n1 + n2;  
         n1 = n2;  
         n2 = n3;  
         printf("%d ",n3);  
         indayFibonacci(n-1);  
    }  
}  

// ham main de in day Fibonacci
int main(){  
    int n;  
    scanf("%d",&n);  
  
    printf("Hien thi day Fibonacci tren man hinh\n\n");  
    printf("%d %d ",0,1);  
    indayFibonacci(n-2);  //n-2 boi vi 2 phan tu dau tien da duoc in 
    
    printf("\n\n===========================\n");
    printf("VietJack chuc cac ban hoc tot!");
  
    getch();  
}  

Kiểm tra số nguyên tố trong c

Chương trình C để tìm kiểm tra số đã nhập có phải là số nguyên tố

#include<stdio.h>  
#include<conio.h>  

int main()  
{  
int n,i,m=0,biendem=0;  
scanf("%d",&n);  
m=n/2;  
for(i=2;i<=m;i++)  
{  
if(n%i==0)  
{  
printf("\nSo nhap khong la so nguyen to.");  
biendem=1;  
break;  
}  
}  
if(biendem==0)  
 printf("\nSo nhap la so nguyen to.");  

 printf("\n\n===========================\n");
 printf("Viethoang Blog chuc cac ban hoc tot!");
getch();  
}   

Số Palindrome trong C

Bài tập

Viết một chương trình C để kiểm tra xem số bạn nhập vào có phải là số Palindrome hay không. Số Palidrome là số mà bạn đọc theo chiều xuôi và chiều ngược thì đều như nhau. Ví dụ như 131, 151, 34543, 48984, ...

Chương trình C để kiểm tra số Palindrome

Mình sử dụng thuật toán sau để tìm số Palindrome:
  • Nhận đầu vào từ người sử dụng
  • Giữ giá trị vừa nhập trong một biến tạm thời
  • Đảo ngược số
  • So sánh giá trị của biến tạm thời với giá trị của số đảo ngược
  • Nếu bằng nhau thì đó là số Palindrome, nếu không bằng nhau thì không phải là số Palindrome
#include<stdio.h>  
#include<conio.h>  

main()  
{  
int n,r,sum=0,bientam;    
scanf("%d",&n);  
bientam=n;  
while(n>0)  
{  
r=n%10;  
sum=(sum*10)+r;  
n=n/10;  
}  
if(bientam==sum)  
printf("\nSo ban da nhap la so Palindrome!");  
else  
printf("\nSo ban da nhap khong phai la so Palindrome!");  

printf("\n\n===========================\n");
printf("Viethoang Blog chuc cac ban hoc tot!");
getch();  
}  

Giai thừa - Cách tính giai thừa trong C

Bài tập

Viết một chương trình C để tính giai thừa của một số bất kỳ được nhập từ người dùng, theo hai cách: sử dụng vòng lặp và sử dụng hàm đệ qui.

Chương trình C sử dụng vòng lặp để tính giai thừa

#include<stdio.h>  
#include<conio.h>  

int main(){  
  int i,giaithua=1,sobatky;  
  
  printf("Nhap mot so bat ky: ");  
  scanf("%d",&sobatky);  
  
  for(i=1;i<=sobatky;i++){  
      giaithua=giaithua*i;  
  }  
  printf("\nGiai thua cua %d la: %d",sobatky,giaithua);  
  
  printf("\n\n===========================\n");
  printf("VietHoang Blog chuc cac ban hoc tot!");
  getch();  
}  

Chương trình C sử dụng hàm đệ qui để tính giai thừa

#include<stdio.h>  
#include<conio.h>  

// khai bao ham tinhgiaithua
long tinhgiaithua(int n)  
{  
  if (n == 0)  
    return 1;  
  else  
    return(n * tinhgiaithua(n-1));  
}  

// ham main de tinh giai thua   
int main()  
{  
  int sobatky;  
  long giaithua;  
   
  printf("Nhap mot so bat ky: ");  
  scanf("%d", &sobatky);   
   
  giaithua = tinhgiaithua(sobatky);  
  printf("Giai thua cua %d la: %ld", sobatky, giaithua);  
  
  printf("\n\n===========================\n");
  printf("VietHoang Blog chuc cac ban hoc tot!");
  
  getch();  
}  

Số Armstrong trong C

Bài tập

Viết một chương trình C để nhập một số và kiểm tra xem số đó có phải là số Armstrong hay không.
Số Armstrong là số có giá trị bằng tổng lập phương của các chữ số trong số đó. Ví dụ: 153 là số Armstrong bởi vì (1*1*1) + (3*3*3) + (5*5*5) = 153.

Chương trình C để kiểm tra số Armstrong

#include<stdio.h>  
#include<conio.h>  

main()  
{  
int n,r,sum=0,bientam;  
 
printf("Nhap mot so bat ky = ");  
scanf("%d",&n);  
bientam=n;  
while(n>0)  
{  
r=n%10;  
sum=sum+(r*r*r);  
n=n/10;  
}  
if(bientam==sum)  
printf("\nSo da cho la so Armstrong ");  
else  
printf("\nSo da cho khong phai la so Armstrong");  

printf("\n\n===========================\n");
printf("VietHoang chuc cac ban hoc tot!");
getch();  
}  

Nhân ma trận trong C

Bài tập

Viết một chương trình C để nhập hai ma trận và tính tích của hai ma trận đó.

Chương trình C để nhập và tính tích hai ma trận

#include<stdio.h>  
#include<conio.h>  

main()  
{  
int a[10][10],b[10][10],matrantich[10][10],hang,cot,i,j,k;  
 
printf("Nhap so hang = ");  
scanf("%d",&hang);  
printf("\nNhap so cot = ");  
scanf("%d",&cot);  
printf("\nNhap cac phan tu cua ma tran thu nhat\n");  
for(i=0;i<hang;i++)  
{  
for(j=0;j<cot;j++)  
{  
scanf("%d",&a[i][j]);  
}  
}  
printf("\nNhap cac phan tu cua ma tran thu hai\n");  
for(i=0;i<hang;i++)  
{  
for(j=0;j<cot;j++)  
{  
scanf("%d",&b[i][j]);  
}  
}  
  
printf("\nTich cua hai ma tran la:\n");  
for(i=0;i<hang;i++)  
{  
for(j=0;j<cot;j++)  
{  
matrantich[i][j]=0;  
for(k=0;k<cot;k++)  
{  
matrantich[i][j]+=a[i][k]*b[k][j];  
}  
}  
}  
// hien thi ket qua  
for(i=0;i<hang;i++)  
{  
for(j=0;j<cot;j++)  
{  
printf("%d\t",matrantich[i][j]);  
}  
printf("\n");  
}  

printf("\n\n===========================\n");
printf("VietHoang chuc cac ban hoc tot!");
getch();  
}  

Các bạn có thể tham khảo thêm tại: http://123link.pw/laptrinhc

Không có nhận xét nào