Trung tâm đào tạo thiết kế vi mạch Semicon


  • ĐĂNG KÝ TÀI KHOẢN ĐỂ TRUY CẬP NHIỀU TÀI LIỆU HƠN!
  • Create an account
    *
    *
    *
    *
    *
    Fields marked with an asterisk (*) are required.
wafer.jpg

Tổng hợp bài tập và bài giải C/C++ (P4)

E-mail Print PDF

LOẠI BỎ KHOẢNG TRỐNG THỪA TRONG CHUỖI

 

PHP Code:

#include <stdio.h>
#include <string.h>
#include <conio.h>
#pragma warn -pia

char *trim(char *chuoi)
{
   
char *p;
   while (
strstr(chuoi"  "))
     
memmove(pp+1strlen(chuoi) - (chuoi));
   if (
chuoi[0] == ' ')
     
memmove(chuoichuoi+1strlen(chuoi) - 1);
   if (
chuoi[strlen(chuoi)-1] == ' ')
     
chuoi[strlen(chuoi)-1] = 0;
   return 
chuoi;
}

void main()
{
   
char chuoi[125];

   
printf("\nNhap chuoi mau : ");
   
textattr(0x1e);
   
gets(chuoi);

   
trim(chuoi);
   
printf("\nChuoi sau khi da trim : ");
   
textattr(0x1e);
   
cputs(chuoi);
   
getch();

 

TÌM TẤT CẢ CÁC ƯỚC CỦA MỘT SỐ N

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

void main()
{
  
int ni;

  
printf("Cho gia tri N = ");
  
scanf("%d", &n);

  
printf("Cac uoc so cua %d la :\n"n);
  for (
i=1i<ni++)
    if ((
i) == 0)
      
printf("%5d"i);
  
getch();

BỘI SỐ CHUNG VÀ ƯỚC SỐ CHUNG

#include <stdio.h>
#include <conio.h>
unsigned USCLN (unsigned nunsigned m)
{
  while (
!= && != 0)
    if (
n>m)
      
-= m;
    else
      
-= n;
  if (
== 0)
    return 
m;
  else
    return 
n;
}

unsigned BSCNN (unsigned nunsigned m)
{
  return 
USCLN(nm);
}

void main()
{
  
unsigned nm;

  
printf("\nNhap hai vao so nguyen duong : ");
  
scanf("%u%u", &n, &m);
  
printf("\nUSCLN cua %u va %u = %u"nmUSCLN(n,m));
  
printf("\nBSCNN cua %u va %u = %u"nmBSCNN(n,m));
  
getch();

TRỘN 2 DÃY GIẢM THÀNH MỘT DÃY TĂNG

#include <stdio.h>
#include <conio.h>
#define MAX 10

void main()
{
  
int a[MAX], b[MAX], c[2*MAX], n1n2ii1i2;

  
printf("\nCho biet so phan tu cua mang thu nhat : ");
  
scanf("%d", &n1);
  
printf("Nhap vao cac phan tu (giam dan) cua mang thu nhat : ");
  for (
i=0i<n1i++)
    
scanf("%d", &a[i]);
  
printf("\nCho biet so phan tu cua mang thu hai : ");
  
scanf("%d", &n2);
  
printf("Nhap vao cac phan tu (giam dan) cua mang thu hai : ");
  for (
i=0i<n2i++)
    
scanf("%d", &b[i]);
  
i1 n1-1;
  
i2 n2-1;
  for (
i=0i<n1 n2i++)
  {
    if (
i1 || i2 0)
      break;
    if (
a[i1] < b[i2])
      {
        
c[i] = a[i1];
        
i1--;
      }
      else
      {
        
c[i] = b[i2];
        
i2--;
      }
  }
  if (
i1 >= 0)
    while (
i1 >= 0)
      
c[i++] = a[i1--];
  if (
i2 >= 0)
    while (
i2 >= 0)
      
c[i++] = b[i2--];
  
printf("\nCac phan tu cua mang tron : ");
  for (
i=0i<n1+n2i++)
    
printf("%d "c[i]);
  
getch();

TÍNH TÍCH 2 MA TRẬN:

#include<conio.h>
#include<stdio.h>
#include<alloc.h>
void main()
{
int *a,*b,*c;
int m,n;
int i,j;
clrscr();
//Nhap so hang so cot
printf("Nhap vao m:");scanf("%d",&m);
printf("Nhap vao n:");scanf("%d",&n);
//Cap phat bo nho
a=(int*)calloc(m*n,sizeof(int));
b=(int*)calloc(m*n,sizeof(int));
c=(int*)calloc(m*n,sizeof(int));
// Nhap so lieu va tinh toan
for(i=1;i<=m;i++)
for(
j=1;j<=n;j++)
{
    
printf("Nhap vao a[%d,%d]=",i,j);scanf("%d",&a[(i-1+j)+((i-1)*(n-1))]);
}
for(
i=1;i<=m;i++)
for(
j=1;j<=n;j++)
{
    
printf("Nhap vao b[%d,%d]=",i,j);scanf("%d",&b[(i-1+j)+((i-1)*(n-1))]);
    
c[(i-1+j)+((i-1)*(n-1))]=a[(i-1+j)+((i-1)*(n-1))]+b[(i-1+j)+((i-1)*(n-1))];
}
// xuat cac mang a,b,c ra man hinh
for(i=1;i<=m;i++)
for(
j=1;j<=n;j++)
{
    
printf("\t%d",a[(i-1+j)+((i-1)*(n-1))]);
    if(
j==n)printf("\n");
}
printf("\n===========\n");
for(
i=1;i<=m;i++)
for(
j=1;j<=n;j++)
{
    
printf("\t%d",b[(i-1+j)+((i-1)*(n-1))]);
    if(
j==n)printf("\n");
}
printf("\n===========\n");
for(
i=1;i<=m;i++)
for(
j=1;j<=n;j++)
{
    
printf("\t%d",c[(i-1+j)+((i-1)*(n-1))]);
    if(
j==n)printf("\n");
}
getch();

IN DANH SÁCH CÁC SỐ HOÀN HẢO NHỎ HƠN SỐ N NHẬP TỪ USER

#include <stdio.h>

 

int main(void)

{

   int  i , j , n , tong ;

 

   printf("\n Nhập vào N = "); scanf("%d",&n);

  

   for ( i = 2 ; i <=n ; i++ )

   {

      tong = 1 ;

      for ( j = 2; j <= i / 2 ; j++ )

      if ( i % j == 0 )   tong += j;

      if ( tong == i ) printf(" %10d ", i );

   }

   getch();

   return 0;

}

 

BÀI IN RA LỊCH CỦA MỘT NĂM BẤT KỲ LỚN HƠN 1700

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int songay(int,int);
bool namnhuan(int nam);
void InLich(int,int);
int ThuDauTien(int,int);
void main()
{
    
int nam;
   
char chon;
   do
   {
       do
       {
            
cout<<"Nhap vao nam(> 1700): ";
          
cin>>nam;
       }while(
nam 1700);
       for(
int i 1;<= 12;i++)
       {
           
cout<<"Thang "<<i<<endl;
          
InLich(i,nam);
          
cout<<endl;
       }
      
cout<<"\nBan co muon tiep tuc khong(y/n): ";
      
cin>>chon;
      
system("cls");
   }while(
chon == 'y');
   
cout<<"Thanh Nam cam on ban da su dung chuong trinh {an Enter de thoat)";
   
getch();
}
int songay(int thang,int nam)
{
     switch(
thang)
   {
       case 
1:
       case 
3:
      case 
5:
      case 
7:
      case 
8:
      case 
10:
      case 
12:
          return 
31;
      case 
2:
          if(
namnhuan(nam))
             return 
29;
         else
             return 
28;
      case 
4:
      case 
6:
      case 
9:
      case 
11:
          return 
30;
   }
   return 
0;
}
bool namnhuan(int nam)
{
   return ((
nam == && nam 100 != 0)||(nam 400 == 0));
}
void InLich(int thang,int nam)
{
    
int ngayd ThuDauTien(thang,nam);
   if(
ngayd == 0)
   
ngayd 7;
     
int i;
   
int sn songay(thang,nam);
   
cout<<"\nMon\tTUE\tWED\tTHU\tFRI\tSAT\tSun\n";
   for(
1;<= ngayd 1;i++)
   
cout<<"\t";
   for(
1;<= sn;i++)
   {
         
cout<<i<<"\t";
      if((
ngayd 1) % == 0)
      
cout<<endl;
   }
}        

long int funct1 (int nam,int thang)                                    
{                                                                       
      
long int result;                                                
   if ( 
thang <= )                                                    
   
nam -= 1;   //                                                       
   
result nam;                                                        
   return (
result);                                                     
}                                                                       
                                                                        
long int funct2 (int thang)                                             
{                                                                       
    
long int result;                                                
    if ( 
thang <= )                                               
    
result thang 13;                                            
    else                                                            
    
result thang 1;                                             
    return(
result);                                                 
}                                                                       
                                                                        
long int day_count (int thangint nam)                                 
{                                                                       
    
long int number;                                                     
    
number 1461 *  funct1(nam,thang) / 153 funct2(thang) / 1;
    return (
number);                                                     
}                                                                      

int ThuDauTien(int thang,int nam)                                      
{                                                                       
    
long int number_of_days1;                                          
   
int day_of_week;                                                   
   
number_of_days1 day_count (thangnam);                            
   
day_of_week = (number_of_days1 621049) % 7;                                                                         
    return 
day_of_week;                                             

BÀI TẬP KIỂM TRA DẤU NGOẶC ĐÚNG.

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#define max 100
int stack[max],Top=-1;
void push(int stack[],int &Top,int X)
{
        if (Top==max-1)
               {
                       puts("Stack day");
                       exit(3);
               }
        else
               {
                       Top++;
                       stack[Top]=X;
               }
}
int pop(int stack[],int &Top)
{
        int tam;
        if (Top==-1) return Top;
        else
               {
                       tam=stack[Top];
                       Top--;
                       return tam;
               }
}
void DauNgoac(char s[],int n)
{
        int i;
        for(i=0;i<n;i++)
               {
                       if (s[i]=='(')  push(stack,Top,1);
                       if (s[i]==')'&&pop(stack,Top)==-1)
                               {
                                      Top=-2;
                                      break;
                               }
 
               }
        if (Top==-1) printf("\nDung");
        else printf("\nSai");
}
void main()
{
        clrscr();
        char s[max];
        int n=
        printf("Nhap chuoi:");
        gets(s);
        n=strlen(s);
        DauNgoac(s,n);
        getch();
}

 

BÀI TOÁN TÁM HOÀNG HẬU

#include <stdio.h>
#include<conio.h>
int dong[8], cot[8], cheoxuoi[15], cheonguoc[15];
 
void print ()
{
  int i;
  printf("\n");
  for (i=0; i<8; i++)
    printf("%3d", dong[i]);
}
 
void thu(int i)
{
  int j;
  for (j=0; j<8; j++)
  {
    if (cot[j] == 1 && cheoxuoi[i+j] ==1 && cheonguoc[i-j+7] == 1)
    {
      dong[i] = j;
      cot[j] = 0;
      cheoxuoi[i+j] = 0;
      cheonguoc[i-j+7] = 0;
      if (i<7)
        thu(i+1);
      else
        print();
      cot[j] = 1;
      cheoxuoi[i+j] = 1;
      cheonguoc[i-j+7] = 1;
    }
  }
}
 
void tim()
{
   int i, q;
 
   for (i=0; i<8; i++)
   {
     cot[i] = 1;
     dong[i] = -1;
   }
   for (i=0; i<15; i++)
   {
     cheoxuoi[i] = 1;
     cheonguoc[i] = 1;
   }
   thu(0);
}
 
void main()
{
  tim();
  getch();
}

 

IN RA SỐ HEX TƯƠNG ỨNG VỚI MỘT SỐ NGUYÊN DƯƠNG

#include <stdio.h>
#include <conio.h>
void main()
{
  unsigned number;
  char hex[] = "0123456789ABCDEF";
 
  printf("\nNhap vao mot gia tri nguyen duong 16 bit : ");
  scanf("%u", &number);
  printf("Gia tri Hex tuong ung = %c%c%c%c",
          hex[number/0x1000], hex[(number/0x100)%0x10],
          hex[(number/0x10)%0x10], hex[number%0x10]);
  getch();
}

 

LIỆT KÊ CÁC HOÁN VỊ CỦA N PHẦN TỬ

#include <stdio.h>
#include <conio.h>
#define MAX 10
int mang[MAX], n;
 
void swap (int *x, int *y)
{
  int tmp;
  tmp = *x;
  *x = *y;
  *y = tmp;
}
 
void hoanvi(int k)
{
  int j;
 
  if (k==1)
  {
    printf("\n");
    for (j=0; j<n; j++)
      printf("%d ", mang[j]);
  }
  else
    for (j=k-1; j>=0; j--)
    {
      swap(&mang[k-1], &mang[j]);
      hoanvi(k-1);
      swap(&mang[j], &mang[k-1]);
    }
}
 
void main()
{
  int i;
 
  printf("\nCho biet so phan tu (N < 10) : ");
  scanf("%d", &n);
  for (i=0; i<n; i++)
    mang[i] = i;
  hoanvi(n);
  getch();
}

 

IN CHUỖI THEO CÁC TỪ MỖI TỪ MỘT DÒNG

#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
  char s[50];
  int i, len;
 
  printf("\nNhap vao mot chuoi : ");
  gets(s);
  len = strlen(s);
  i = 0;
  while (i<len)
  {
    while (s[i] == ' ' && i<len)
      i++;
    while (s[i] != ' ' && i<len)
      putc(s[i++], stdout);
    putc('\n', stdout);
  }
  getch();
}

 

IN RA CHỮ SỐ HÀNG TRĂM HÀNG CHỤC HÀNG ĐƠN VỊ

#include <stdio.h>
#include <conio.h>
 
void main()
{
   int n, tram, chuc, donvi;
   clrscr();
   printf("\nNhap vao mot so tu 100 - 999 : ");
   scanf("%d", &n);
 
   tram = n;
   donvi = tram % 10;
   tram /= 10;
   chuc = tram % 10;
   tram /= 10;
 
   printf("\nSo hang tram   = %d", tram);
   printf("\nSo hang chuc   = %d", chuc);
   printf("\nSo hang don vi = %d", donvi);
 
   getch();
}

 

TÌM PHẦN TỬ LỚN NHẤT NHỎ NHẤT TRONG MẢNG MỘT CHIỀU

#include <conio.h>
#include <stdlib.h>
 
void main()
{
  int mang[20];
 
   int i, minval, maxval;
 
   /* Khoi tao mang ngau nhien */
   randomize();
   for (i=0; i<20; i++)
     mang[i] = random(100);
 
   /* Tim gia tri lon nhat va nho nhat */
   minval = maxval = mang[0];
   for (i=1; i<20; i++)
   {
     if (maxval < mang[i])
       maxval = mang[i];
     else if (minval > mang[i])
       minval = mang[i];
   }
 
   /* In mang */
   clrscr();
   for (i=0; i<20; i++)
   {
     if (mang[i] == maxval)
       textcolor(YELLOW);
     else if (mang[i] == minval)
       textcolor(RED);
     else
       textcolor(WHITE);
     cprintf("%3d", mang[i]);
   }
 
   getch();
}

TÍNH TỔ HỢP CHẬP K CỦA N PHẦN TỬ

#include <stdio.h>
#include <conio.h>
 
unsigned long giaithua(int n)
{
   unsigned long ketqua = 1;
   int i;
 
   for (i=2; i<=n; i++)
     ketqua *= i;
 
   return ketqua;
}
 
unsigned long to_hop_chap(int k, int n)
{
   return giaithua(n) / (giaithua(k) * giaithua(n-k));
}
 
void main()
{
  int n, k;
 
  printf("\nNhap vao gia tri N va K : ");
  scanf("%d%d", &n, &k);
 
  printf("Top hop chap %d cua %d = %lu", k, n, to_hop_chap(k, n));
  getch();
}

 

CHƯƠNG TRÌNH ĐỌC SỐ CÓ 1,2 HOẶC 3 CHỮ SỐ.

/* Day la chuong trinh doc so co 3 chu so hay mot so co 2 cu so tham chi so co 1 chu so
   Duoc viet boi Vu Thanh Nam */
#include<iostream.h>
#include<conio.h>
void main()
{
   int a;
   cout<<"Nhap vao mot so co 3 hay 2 tham chi 1 chu so: ";
   cin>>a;
   int hangtram=a/100;
   int hangchuc=((a/10)%10);
   int hangdonvi=a%10;
   switch(hangtram)
   {
               case 1 :cout<<"Mot tram ";break;
               case 2 :cout<<"Hai tram ";break;
               case 3 :cout<<"Ba tram ";break;
               case 4 :cout<<"Bon tram ";break;
               case 5 :cout<<"Nam tram ";break;
               case 6 :cout<<"Sau tram ";break;
               case 7 :cout<<"Bay tram ";break;
               case 8 :cout<<"Tam tram ";break;
               case 9 :cout<<"Chin tram ";break;
   }
   switch(hangchuc)
   {
               case 0:
                   if(hangdonvi==0)
                       cout<<"";
                   else
                       {if(hangchuc==0&&hangtram==0)
                            cout<<"";
                        else
                            cout<<"ninh";}
                    break;
               case 1:cout<<"muoi";break;
               case 2:cout<<"hai muoi";break;
               case 3:cout<<"ba muoi";break;
               case 4:cout<<"bon muoi";break;
               case 5:cout<<"nam muoi";break;
               case 6:cout<<"sau muoi";break;
               case 7:cout<<"bay muoi";break;
               case 8:cout<<"tam muoi";break;
               case 9:cout<<"chin muoi";break;
   }
   switch(hangdonvi)
   {
                case 0:cout<<"Khong";break;
               case 1:
                      if(hangchuc==1||(hangtram==0&&hangchuc==0))
                      cout<<" mot";
                      else
                      cout<<" mo't";
                      break;
               case 2:cout<<" hai";break;
               case 3:cout<<" ba";break;
               case 4:
                       if(hangchuc==1)
                     cout<<" bon";
                     else
                     {if(hangchuc==0&&hangtram==0)
                     cout<<"bon";
                     else
                     cout<<" tu";}
                     break;
               case 5:
                     if(hangchuc==0&&hangtram==0)
                         cout<<" nam";
                     else
                         cout<<" lam";
                     break;
               case 6:cout<<" sau";break;
               case 7:cout<<" bay";break;
               case 8:cout<<" tam";break;
               case 9:cout<<" chin";break;
   }
        getch();
}

 

TÍNH SỐ NGÀY TRONG MỘT THÁNG TRONG MỘT NĂM BẤT KỲ

/* Day la chuong trinh tinh so ngay trong bat ky mot thang trong nam bat ky nao do
   Duoc viet boi Vu Thanh Nam */
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{
        long int thang, nam;
   cout<<"Nhap thang va nam: ";
   cin>>thang>>nam;
   if ((thang>12||thang<1)||(nam<0))
   cout<<"Nhap thang hoac nam sai";
   else
   {
    bool namnhuan=((nam%4==0&&nam%100!=0)||(nam%400==0&&nam%100==0));
    int songay;
    if(thang==4||thang==6||thang==9||thang==11)
    songay = 30;
    else
    {
     if(thang==2)
     songay = namnhuan?29:28;
     else
      songay=31;
     }
     cout<<"So ngay cua thang "<<thang<<" trong nam "<<nam<<" la: "<<songay<<endl;
     }
        getch();
}

 

BÀI KIỂM TRA SỐ NGUYÊN TỐ

/*Ham tinh so nguyen to */
#include<iostream.h>
#include<conio.h>
#include<math.h>
bool LaNguyenTo(int n);
void main()
{
        int n;
   cout<<"Nhap vao mot so bat ky: ";cin>>n;
        if(LaNguyenTo(n))
               cout<<"La so nguyen to";
        else
               {
               cout<<"Khong la so nguyen to vi no chia het cho ";
            for(int j=2;j<n;j++)
            {
               if(n%j==0)
               cout<<j<<" va ";
            }
            cout<<"The thoi";
         }
   getch();
}
bool LaNguyenTo(int n)
{
               bool co=true;
      if(n<2)
      {cout<<"Du lieu nhap sai va so do ";
        return !co;}
        else
      {
               for(int i=2;i<=sqrt(n)+1;i++)
               {
                       if(n%i==0)
               {
                               co=false;
                       break;
               }
               }
        }
   return co;
}

 

TÌM MAX MIN CỦA 4 SỐ

#include<iostream.h>
#include<conio.h>
#include<math.h>
float max(int a, int b);
float min(int a, int b);
void main()
{
        int a,b,c,d;
   cout<<"Nhap vao so thu 1: ";cin>>a;
   cout<<"Nhap vao so thu 2: ";cin>>b;
   cout<<"Nhap vao so thu 3: ";cin>>c;
   cout<<"Nhap vao so thu 4: ";cin>>d;
   cout<<"max= "<<max(max(max(a,b),max(b,c)),max(c,d))<<" min= "<<min(min(min(a,b),min(b,c)),min(c,d))<<endl;
   cout<<"Vay trung binh cong cua 4 so do la: "<<(a+b+c+d)/4;
   getch();
}
float max(int a, int b)
{
        if(a>b)
        return a;
        else
        return b;
}
float min(int a, int b)
{
        if(a>b)
        return b;
        else
        return a;
}

 

TÌM N SỐ FIBONACI ĐẦU TIÊN

#include<iostream.h>
#include<conio.h>
#include<math.h>
long Fibonaci(long n);
void main()
{
   long n;
   cout<<"Nhap vao mot so nguyen duong: ";
   cin>>n;
   cout<<"Vay "<<n<< " so Fibonaci dau tien la: ";
   Fibonaci(n);
   getch();
}
long Fibonaci(long n)   //sach giao khoa 253
{
   int f1=0,f2=1,fi;
   fi=f2;
   for(int i = 1;i <= n ;i ++)
   {
        cout<<fi<<" ";
        fi=f1+f2;
        f1=f2;
        f2=fi;
   }
   return fi;
}
Nguồn sưu tầm 

Bạn có đam mê ngành thiết kế vi mạch và bạn muốn có mức lương 1000 usd cùng lúc bạn

đang muốn tìm một Trung tâm để học vậy hãy đến với ngành vi mạch tại SEMICON

  HotLine: 0972 800 931 Ms Duyên

 

 

 

 

 

 

Last Updated ( Sunday, 25 October 2015 10:36 )  

Related Articles

Chat Zalo