Tong hop cac bai tap LT C - co ban
/* Bai tap 9_1 - Dem so lan xuat hien cac ky tu trong chuoi */
#include <stdio.h>
#include <ctype.h>
void main()
{
char chuoi[80];
int i = 0, count = 0;
printf("
Nhap vao mot chuoi bat ky : ");
gets(chuoi);
while (chuoi[i] != 0)
{
if (isalpha(chuoi[i++]))
count++;
}
printf("So ky tu trong chuoi = %d", count);
getch();
}
#include <stdio.h>
void main()
{
int num, tram, chuc, donvi, count = 0;
for (num = 100; num < 1000; num++)
{
donvi = num % 10;
chuc = (num / 10) % 10;
tram = num / 100;
if (donvi * donvi * donvi + chuc * chuc * chuc + tram * tram * tram == num)
{
printf("
So %d thoa man", num);
count++;
}
}
printf("
Tong cong co %d so thoa man yeu cau", count);
}
/* Bai tap - Bai toan Ancarokhi */
#include <stdio.h>
void main()
{
int dai, rong;
printf("
Bai toan Ancarokhi : Tim dien tich hinh chu nhat co chieu dai gap hai");
printf("
chieu rong va dien tich = chu vi");
for (dai = 1; dai < 100; dai ++)
for (rong=1; rong < 100; rong++)
if (dai == 2 * rong && (dai + rong)*2 == dai*rong)
printf("
Dai = %d; Rong = %d", dai, rong);
getch();
}
/* Bai tap - CHung minh dang thuc An Casi*/
#include <stdio.h>
unsigned long vetrai(unsigned long n)
{
unsigned long tmp=0, i;
for (i=1; i<=n; i++)
tmp += i*i*i*i;
return tmp;
}
unsigned long vephai(unsigned long n)
{
unsigned long tmp;
tmp = (long)6*n*n*n*n*n + (long)15*n*n*n*n + (long)10*n*n*n - n;
tmp = tmp / (long)30 ;
return tmp;
}
void main()
{
unsigned long tong1, tong2, n;
for (n=1; n<=50; n++)
{
tong1 = vetrai(n);
tong2 = vephai(n);
if (tong1 == tong2)
{
printf("
So %d thoa man dang thuc An Casi. ", n);
printf("Tong1 = %ld - Tong2 = %ld", tong1, tong2);
}
else
{
printf("
So %d khong thoa man dang thuc An Casi. ", n);
printf("Tong1 = %ld - Tong2 = %ld", tong1, tong2);
}
}
getch();
}
/* Bai tap 5_4 - Bang ma ASCII */
#include <stdio.h>
#include <conio.h>
void main()
{
int i, j;
clrscr();
printf(" ");
for (j=0; j<16; j++)
printf("%3d", j);
for (i=2; i<16; i++)
for (j=0; j<16; j++)
{
if (j == 0)
printf("
%2d ", i);
printf(" %c", i*16+j);
}
getch();
}
/* Bai tap 4_1 - Giai phuong trinh bac hai AXý + BX + C = 0 */
#include <stdio.h>
#include <math.h>
void main()
{
float a, b, c, delta;
printf("
Giai phuong trinh bac hai AXý + BX + C = 0");
printf("
Cho biet ba he so A B C : ");
scanf("%f%f%f", &a, &b, &c);
delta = b * b - 4 * a * c;
if (delta<0)
printf("Phuong trinh vo nghiem");
else if (delta == 0)
printf("Phuong trinh co nghiem kep x1 = x2 = %f", -b/(2*a));
else
{
printf("Phuong trinh co hai nghiem phan biet
x1 = %f", (-b + sqrt(delta))/(2*a));
printf("
x2 = %f", (-b - sqrt(delta))/(2*a));
}
getch();
}
/* Bai tap 4_1 - Giai phuong trinh bac nhat AX + B = 0 */
#include <stdio.h>
void main()
{
float a, b;
printf("
Giai phuong trinh bac nhat AX + B = 0");
printf("
Cho biet ba he so A B : ");
scanf("%f%f", &a, &b);
if (a==0)
if (b!=0)
printf("Phuong trinh vo nghiem");
else
printf("Phuong trinh co nghiem khong xac dinh");
else
printf("Dap so cua phuong trinh tren = %f", -b/a);
getch();
}
/* Bai tap 1_42 - Chuong trinh ban tau */
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define MAXCOL 26
#define MAXROW 22
void drawboard()
{
int i, j;
textattr(0x1E);
clrscr();
gotoxy(4, 1);
for (i=0; i<MAXCOL; i++)
cprintf("%c ", 'A'+ i);
gotoxy(2, 2);
cprintf("%c",'É');
for (i=0; i<MAXCOL; i++)
cprintf("%s", "ÍÑ");
cprintf("%s", "Í»");
for (i=0; i<MAXROW; i++)
{
gotoxy(1, i+3);
cprintf("%c%s",'A'+i, "Ç");
for (j=0; j<MAXCOL; j++)
cprintf("%s", "ÄÅ");
cprintf("%s", "Ķ");
}
gotoxy(2, 3+MAXROW);
cprintf("%c",'È');
for (i=0; i<MAXCOL; i++)
cprintf("%s", "ÍÏ");
cprintf("%s", "ͼ");
}
char nhaptoado(char min, char max)
{
char c;
do {
c = toupper(getch());
} while (c < min || c > max);
putc(c, stdout);
return c;
}
void main()
{
char x, y, xplayer, yplayer, xcomp, ycomp, xc, yc;
int done = 0, luot = 1, i, j, oldx, oldy;
int board[MAXROW][MAXCOL];
printf("
Nhap vao toa do X cua tau ban (A-Z): ");
x = nhaptoado('A', 'V');
printf("
Nhap vao toa do Y cua tau ban (A-V): ");
y = nhaptoado('A', 'Z');
drawboard();
window((MAXCOL+3) * 2, 1, 80, 25);
textattr(0x0E);
clrscr();
cprintf("Quy tac choi : ");
cprintf("
\rMuon ban o nao, ta nhaptoa do hang roi cot. Vidu AZ");
cprintf(" de ban o o hang Acot Z.
\rMoi di truoc :");
randomize();
do {
xc = random(MAXROW)+'A';
} while (xc == x);
yc = random(MAXCOL)+'A';
for (i=0; i<MAXROW; i++)
for (j=0; j<MAXCOL; j++)
board[i][j] = 0;
do {
cprintf("
\r%d - ", luot);
xplayer = nhaptoado('A','V');
yplayer = nhaptoado('A','Z');
oldx = wherex();
oldy = wherey();
window(1,1,80,25);
gotoxy((yplayer-'A'+2) * 2, xplayer - 'A' + 3);
cprintf("%c", 4);
window((MAXCOL+3) * 2, 1, 80, 25);
gotoxy(oldx, oldy);
if (xplayer == xc && yplayer == yc)
{
textattr(2);
cprintf("
\rOi chet toi roi!");
done = 1;
}
else
{
do {
xcomp = random(MAXROW);
ycomp = random(MAXCOL);
} while (board[xcomp][ycomp] == 1);
cprintf(" - %c%c", xcomp+'A', ycomp+'A');
if (xcomp+'A' == x && ycomp+'A' == y)
{
textattr(3);
cprintf("
\rBan da chet!");
done = 1;
}
board[xcomp][ycomp] = 1;
}
luot++;
} while (!done);
cprintf("
\rNhan phim de ket thuc");
getch();
window(1, 1, 80, 25);
}
/* Bai tap 1_91 - The hien cac gia tri bit cua so */
#include <stdio.h>
void main()
{
unsigned int mang[24], i;
int bit[16], k, index;
printf("
Nhap vao 23 gia tri nguyen : ");
for (i=0; i<23; i++)
scanf("%d",&mang[i]);
printf(" FEDCBA9876543210");
for (i=0; i<23; i++)
{
k = mang[i];
for (index = 0; index < 16; index++)
bit[index] = 0;
index = 15;
while (k)
{
bit[index--] = k%2;
k /= 2;
}
printf("
%5d ",mang[i]);
for (index=0; index<16; index++)
if (bit[index] == 1)
printf("*");
else
printf("-");
}
getch();
}
/* Bai tap 2_7 - In ra nam am lich tuong ung voi nam nhap vao */
#include <stdio.h>
void main()
{
unsigned nam;
char can[][5] = {"Giap", "At", "Binh", "Dinh", "Mau", "Ky",
"Canh", "Tan", "Nham", "Quy"};
char chi[][5] = {"Ty", "Suu", "Dan", "Meo", "Thin", "Ty",
"Ngo", "Mao", "Than", "Dau", "Tuat", "Hoi"};
printf("
Nhap nam can biet : ");
scanf("%d", &nam);
printf("Nam am lich cua %d la %s %s", nam, can[(nam+6)%10], chi[(nam+8)%12]);
getch();
}
/* Bai tap 1_31 - Tinh can bac hai theo phep lap Newton */
#include <stdio.h>
#include <math.h>
void main()
{
double a, xn, ketqua;
printf("
Nhap vao so muon tinh can bac hai : ");
scanf("%lf", &a);
xn = (a+1)/2;
do {
ketqua = xn;
xn = 0.5 * (xn + a/xn);
} while (fabs(xn-ketqua) > 0.0001);
printf("
Ket qua = %lf", xn);
getch();
}
/* Bai tap 5_1 - In bang cuu chuong */
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
int i, j;
char chuoi[] = "B A N G C U U C H U O N G";
char ten[10][5] = {"","","Hai", "Ba", "Bon", "Nam",
"Sau", "Bay", "Tam", "Chin"};
clrscr();
textcolor(YELLOW);
gotoxy((80 - strlen(chuoi)) / 2, 1);
cprintf("%s
", chuoi);
for (i=2; i<=9; i++)
{
gotoxy(10*(i-2) + (10 - strlen(ten[i]))/2, 4);
textcolor(i);
cprintf("%s", ten[i]);
}
for (j=1; j<=10; j++)
for (i=2; i<=9; i++)
{
gotoxy(10*(i-2) + 1, j+4);
textcolor(i);
cprintf("%dx%2d = %2d", i, j, i*j);
}
getch();
}
/* Bai tap 2_2 - Nhap chuoi va in chuoi */
#include <stdio.h>
void main()
{
char name[80];
printf("
Xin cho biet ten cua ban : ");
gets(name);
printf("Chao %s
", name);
getch();
}
/* Cau truc va cac ham thao tac len so phuc */
#include <math.h>
typedef struct tagcomplex {
float thuc, ao;
} complex;
complex tong(complex a, complex b)
{
complex c;
c.thuc = a.thuc + b.thuc;
c.ao = a.ao + b.ao;
return c;
}
complex hieu(complex a, complex b)
{
complex c;
c.thuc = a.thuc - b.thuc;
c.ao = a.ao - b.ao;
return c;
}
complex tich(complex a, complex b)
{
complex c;
c.thuc = a.thuc*b.thuc - a.ao*b.ao;
c.ao = a.thuc*b.ao + a.ao*b.thuc;
return c;
}
complex thuong(complex a, complex b)
{
complex c;
float tongbp;
tongbp = b.thuc*b.thuc + b.ao*b.ao;
c.thuc = (a.thuc*a.ao + b.thuc*b.ao)/tongbp;
c.ao = (a.ao*b.thuc - a.thuc*b.ao)/tongbp;
return c;
}
float argument(complex a)
{
return acos(a.thuc/sqrt(a.thuc*a.thuc + a.ao*a.ao));
}
float modul(complex a)
{
return sqrt(a.thuc*a.thuc + a.ao*a.ao);
}
void print_complex(complex a)
{
printf("%.2f + %.2fi", a.thuc, a.ao);
}
void main()
{
complex a, b, c;
printf("
Nhap he so thuc va phuc cua A : ");
scanf("%f%f", &a.thuc, &a.ao);
printf("
Nhap he so thuc va phuc cua B : ");
scanf("%f%f", &b.thuc, &b.ao);
printf("
So phuc A = ");
print_complex(a);
printf("
So phuc B = ");
print_complex(b);
printf("
Tong cua chung = ");
c = tong(a, b);
print_complex(c);
printf("
Hieu cua chung = ");
c = hieu(a, b);
print_complex(c);
printf("
Tich cua chung = ");
c = tich(a, b);
print_complex(c);
printf("
Thuong cua chung = ");
c = thuong(a, b);
print_complex(c);
printf("
Argument cua a = %f", argument(a));
printf("
Modul cua a = %f", modul(a));
getch();
}
/* Bai tap 1_59 - Tim so dong, so tu, so ky tu nhap tu ban phim */
#include <stdio.h>
void main()
{
int sokytu=0, dautu = 0, sotu=0, sodong=1;
char c;
puts("
");
do {
c = getchar();
if (c != '
' && c != EOF)
sokytu++;
if (isalnum(c) && dautu == 0)
{
sotu++;
dautu=1;
}
if (!isalnum(c) && dautu == 1)
dautu = 0;
if (c == '
')
sodong++;
} while (c != EOF);
printf("
So dong : %d", sodong);
printf("
So tu : %d", sotu);
printf("
So ky tu : %d", sokytu);
getch();
}
/* Ma hoa thong diep */
#include <stdio.h>
#include <ctype.h>
char *crypt(char *tdiep, int column)
{
char tam[255], *result;
int i = 0, k = 0, n, j=0;
while(tdiep[i] != 0)
{
if (isalnum(tdiep[i]))
tam[k++] = tdiep[i];
i++;
}
tam[k] = 0;
result = (char *)malloc(k+1);
for (i=0; i<column; i++)
{
n = 0;
while(n+i < k)
{
result[j++] = tolower(tam[n+i]);
n += column;
}
}
result[k] = 0;
return result;
}
void main()
{
char thongdiep[255], *mahoa;
int col;
printf("
Nhap thong diep can ma hoa : ");
gets(thongdiep);
printf("
Cho biet so cot : ");
scanf("%d", &col);
mahoa = crypt(thongdiep, col);
printf("
Thong diep da duoc ma hoa thanh : %s", mahoa);
getch();
}
/* Cuon dong chu ngang man hinh */
#include <stdio.h>
void main()
{
char qcao[81], i=0, len;
textattr(0x1e);
printf("
Nhap vao dong quang cao : ");
gets(qcao);
len = strlen(qcao);
while (!kbhit())
{
movetext(2, 1, 80, 1, 1, 1);
gotoxy(80, 1);
cprintf("%c", qcao[i++]);
delay(100);
i %= len;
}
getch();
}
/* Bai tap 1_100 - Tinh thu cua ngay */
#include <stdio.h>
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 ()
{
long int number_of_days1;
int day_of_week;
printf ("Nhap vao mot ngay (dd mm yyyy), vd 12 03 1999
");
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 ("
Ngay 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;
}
getch();
}
#include <stdio.h>
void main()
{
int a[10], i, maxstart, maxend, maxlen, tmpstart, tmpend, tmplen;
printf("
Nhap vao 10 phan tu nguyen cua day :");
for (i=0; i<10; i++)
scanf("%d", &a[i]);
printf("Day da cho :
");
for (i=0; i<10; i++)
printf("%6d", a[i]);
maxstart = maxend = tmpstart = tmpend = 0;
maxlen = tmplen = 1;
for (i=1; i< 10; i++)
{
if (a[i] < a[tmpend])
{
if (maxlen < tmplen)
{
maxstart = tmpstart;
maxend = tmpend;
maxlen = tmplen;
}
tmpstart = tmpend = i;
tmplen = 1;
}
else
{
tmplen++;
tmpend++;
}
}
if (maxlen < tmplen)
{
maxstart = tmpstart;
maxend = tmpend;
}
printf("
Day tang co so phan tu nhieu nhat la :
");
for (i=maxstart; i<=maxend; i++)
printf("%6d", a[i]);
getch();
}
#include <stdio.h>
void main()
{
int a[10], i, maxstart, maxend, maxtotal, tmpstart, tmpend, tmptotal;
printf("
Nhap vao 10 phan tu nguyen cua day :");
for (i=0; i<10; i++)
scanf("%d", &a[i]);
printf("Day da cho :
");
for (i=0; i<10; i++)
printf("%6d", a[i]);
maxstart = maxend = tmpstart = tmpend = 0;
maxtotal = tmptotal = a[0];
for (i=1; i< 10; i++)
{
if (a[i] < a[tmpend])
{
if (maxtotal < tmptotal)
{
maxstart = tmpstart;
maxend = tmpend;
maxtotal = tmptotal;
}
tmpstart = tmpend = i;
tmptotal = a[i];
}
else
{
tmptotal += a[i];
tmpend++;
}
}
if (maxtotal < tmptotal)
{
maxstart = tmpstart;
maxend = tmpend;
}
printf("
Day tang co tong nhieu nhat la :
");
for (i=maxstart; i<=maxend; i++)
printf("%6d", a[i]);
getch();
}
/* Baitap 1_69 - Xem tap tin DBF */
#include <stdio.h>
typedef struct tagDBF_HEADER {
unsigned char signature; /* 03 = dbf, 83 dbf+dbt */
unsigned char ymd[3];
long num_records;
int data_off;
int rec_size;
unsigned char pad[20];
} DBF_HEADER;
typedef struct tagDBF_STRUCT {
char name[11];
char type;
long fstart;
unsigned char fsize;
unsigned char decimal;
char pad[14];
} DBF_STRUCT;
DBF_HEADER dbheader;
DBF_STRUCT dbstruct[255];
int numfields;
void main()
{
char filename[50];
char *dump, chuoi[250] ;
int i, j, offset, k;
FILE *fp;
printf("
Cho biet ten tap tin DBF muon xem : ");
gets(filename);
if ((fp=fopen(filename, "rb")) == NULL)
printf("Khong the mo tap tin %s", filename);
else
{
fread(&dbheader, sizeof(DBF_HEADER), 1, fp);
if (dbheader.signature == 3 || dbheader.signature == 0x83)
{
numfields = (dbheader.data_off - 33) / 32;
fread(&dbstruct, sizeof(DBF_STRUCT), numfields, fp);
fgetc(fp);
dump = (char *)malloc(dbheader.rec_size);
k = 7;
for (j=0; j<numfields; j++)
{
gotoxy(k, wherey());
textcolor(j+1);
cprintf("%s", dbstruct[j].name);
k += dbstruct[j].fsize;
}
for (i=0; i<dbheader.num_records; i++)
{
fread(dump, dbheader.rec_size, 1, fp);
printf("
%3d ", i+1);
if (dump[0] != 32)
printf("* ");
else
printf(" ");
offset= 1;
for (j=0; j<numfields; j++)
{
switch(dbstruct[j].type)
{
case 'C' : strncpy(chuoi, &dump[offset], dbstruct[j].fsize);
chuoi[dbstruct[j].fsize] = 0;
printf("%s ", chuoi);
break;
case 'D' : printf("%c%c/%c%c/%c%c%c%c ",dump[offset+6], dump[offset+7],
dump[offset+4],dump[offset+5],dump[offset],dump[offset+1],
dump[offset+2],dump[offset+3]);
break;
case 'N' : for (k=0; k<dbstruct[j].fsize; k++)
printf("%c", dump[offset+k]);
printf(" ");
break;
case 'L' : printf("%c ", dump[offset]);
break;
}
offset += dbstruct[j].fsize;
}
}
free(dump);
}
else
printf("Khong phai tap tin DBF");
fclose(fp);
}
getch();
}
#include <stdio.h>
#include <ctype.h>
void main()
{
FILE *fp;
char sf[50], c;
long count = 0;
printf("
Nhap vao ten tap tin : ");
scanf("%s", sf);
if ((fp = fopen(sf, "r")) == NULL)
fprintf(stderr, "
Khong the mo tap tin %s", sf);
else
{
while ((c = fgetc(fp)) != EOF)
if (isalpha(c))
count++;
printf("
So ky tu trong %s la %ld", sf, count);
}
getch();
}
#include <stdio.h>
#include <ctype.h>
void main()
{
FILE *fp;
char sf[50], chuoi[250];
int len, i;
long count = 0;
printf("
Nhap vao ten tap tin : ");
scanf("%s", sf);
if ((fp = fopen(sf, "r")) == NULL)
fprintf(stderr, "
Khong the mo tap tin %s", sf);
else
{
while (fgets(chuoi, 250, fp) != NULL)
{
len = strlen(chuoi) - 1;
i=0;
do {
while (chuoi[i] == ' ' && i <= len-1)
i++;
if (i<=len-1)
{
while (isalnum(chuoi[i]))
i++;
count++;
}
} while (i <= len-1);
}
printf("
So ky tu trong %s la %ld", sf, count);
}
getch();
}
/* Dao nguoc chuoi */
char *dnchuoi(char *s)
{
char *tmp, i;
i = 0;
tmp = (char *)malloc(strlen(s)+1);
while (i<strlen(s))
*(tmp+i) = *(s + strlen(s) - i++ - 1);
*(tmp+i) = 0;
return tmp;
}
void main()
{
char hello[] = "Hello World";
char *s;
printf("
Chuoi ban dau = %s", hello);
s = dnchuoi(hello);
printf("
Chuoi dao nguoc = %s", s);
getch();
}
/* Doan so */
#include <stdio.h>
void main()
{
int n, k = 128, i = 0, solan = 0;
char c;
printf("
Ban hay nghi mot so trong dau. So do phai nho hon 100.");
delay(1000);
printf("Xong chua! Roi ban hay tra loi nhung cau hoi sau day cua toi.");
printf("
Toi se tim ra con so ma ban doan.");
do {
n = (k+i)/2;
solan++;
printf("
Lan doan thu %d.", solan);
printf("
Co phai so ban nghi la %d (Dung, Nho hon, Lon hon) ? ", n);
do {
c = toupper(getch());
} while (c != 'D' && c != 'N' && c != 'L');
switch (c)
{
case 'L' : i = n;
break;
case 'N' : k = n;
break;
case 'D' : printf("
Tai khong?");
break;
}
} while (c != 'D');
getch();
}
/* Bai tap 1_86 - Doc tu file mot mang 2 chieu 10x10 */
#include <stdio.h>
#define MAX 10
char filename[] = "MANG1010.DAT";
void main()
{
int mang[MAX][MAX], i, j;
FILE *fp;
if ((fp = fopen(filename, "r")) == NULL)
printf("
Khong the mo tap tin %s", filename);
else
{
fread(&mang, sizeof(int), MAX * MAX, fp);
fclose(fp);
printf("
Viec doc hoan tat.");
for (i=0; i<MAX; i++)
{
printf("
");
for (j=0; j<MAX; j++)
printf("%d ", mang[i][j]);
}
}
getch();
}
/* Bai tap 2_9 - Doi so tu co so n sang gia tri so co so m */
#include <stdio.h>
#include <string.h>
char *doics(char *number, int n, int m)
{
static char ketqua[17];
char chuso[16] = "0123456789ABCDEF";
int i = 0, giatri = 0, len;
len = strlen(number);
while(i<len) {
giatri = giatri * n + (strchr(chuso, number[i]) - &chuso);
i++;
}
i=16;
ketqua[17] = 0;
do {
ketqua[i] = chuso[giatri % m];
giatri /= m;
i--;
} while (giatri > 0);
return (ketqua + i + 1);
}
void main()
{
unsigned n, m;
char number[17], *ketqua;
do {
printf("
Nhap gia tri N (2 - 16) : ");
scanf("%d", &n);
} while (n<2 || n>16);
getchar();
printf("Gia tri thuoc he %d : ", n);
gets(number);
do {
printf("Nhap gia tri M (2 - 16) : ");
scanf("%d", &m);
} while (m<2 || m>16);
printf("Gia tri %s o co so %u co gia tri o co so %u la : ", number, n, m);
ketqua = doics(number, n, m);
puts(ketqua);
getch();
}
#include <stdio.h>
void main()
{
char s[100];
printf("
Nhap vao mot chuoi : ");
i = 0;
while (s[i] != 0)
{
if (isalpha(s[i]))
if (s[i] < 97)
s[i] += 32;
else
s[i] -= 32;
i++;
}
printf("
Chuoi bien thanh : %s", s);
getch();
}
/* Bai tap 5_3 - Tim phuong an doi tien */
#include <stdio.h>
#define TONGSOTIEN 300000
void main()
{
long i, j, k, l, m, count=0, soluong = 0;
for (i=0; i<=TONGSOTIEN/1000; i++)
for (j=0; j<=TONGSOTIEN/2000; j++)
for (k=0; k<=TONGSOTIEN/5000; k++)
for (l=0; l<=TONGSOTIEN/10000; l++)
for (m=0; m<=TONGSOTIEN/20000; m++)
{
if ((i*1000 + j*2000 + k*5000 + l*10000 + m*20000) == TONGSOTIEN)
printf("
%5ld - %5ld%5ld%5ld%5ld%5ld", ++count, i, j, k, l, m);
soluong++;
}
printf("so luong = %ld", soluong);
getch();
}
/* Bai tap 9_4 - Tim chuoi doi xung */
void main()
{
char chuoi[125];
int i = 0, j;
printf("
Nhap vao chuoi kiem tra : ");
gets(chuoi);
j = strlen(chuoi) - 1;
while(chuoi[i++] == chuoi[j--])
if (--i>=++j)
printf("Chuoi doi xung");
else
printf("Chuoi khong doi xung");
getch();
}
/* Bai tap 1_87 - Demo ve hop dung conio */
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
char doublebox[] ="ÉÍ»ºÈ¼";
char singlebox[] ="ÚÄ¿³ÀÙ";
void swap(int *x, int *y)
{
temp = *y;
*y = *x;
*x = temp;
}
void drawbox(int x1, int y1, int x2, int y2, int type)
{
char *boxtype;
if (type == 2)
boxtype = doublebox;
else
boxtype = singlebox;
gotoxy(x1,y1);
cprintf("%c", boxtype[0]);
for (i=x1 + 1; i < x2; i++)
cprintf("%c", boxtype[1]);
cprintf("%c", boxtype[2]);
for (i=y1+1; i<y2; i++)
{
gotoxy(x1, i);
cprintf("%c", boxtype[3]);
gotoxy(x2, i);
cprintf("%c", boxtype[3]);
}
gotoxy(x1,y2);
cprintf("%c", boxtype[4]);
for (i=x1 + 1; i < x2; i++)
cprintf("%c", boxtype[1]);
cprintf("%c", boxtype[5]);
}
void drawbox_color(int x1, int y1, int x2, int y2, int type, int color)
{
if (x1>x2) swap(&x1, &x2);
if (y1>y2) swap(&y1, &y2);
textattr(color);
window(x1, y1, x2, y2);
clrscr();
window(1,1,80,25);
drawbox(x1, y1, x2, y2, type);
}
void main()
{
int x1, y1, x2, y2, type, color;
cprintf("
\rDRAWBOX DEMO.
\rPress any key to begin...");
getch();
randomize();
while (!kbhit())
{
x1 = random(80);
do {
x2 = random(80);
} while (x1 == x2);
y1 = random(25);
do {
y2 = random(25);
} while (y1 == y2);
type = random(2) + 1;
color = random(256);
drawbox_color(x1,y1,x2,y2,type,color);
delay(100);
}
}
#include <stdio.h>
void main()
{
double fahrenheit, celsius;
printf("
Nhap gia tri do Fahrenheit : ");
scanf("%lf", &fahrenheit);
if (fahrenheit != 32.0)
{
celsius = 5.0 * (fahrenheit-32.0) / 9.0 ;
printf("Do Celsius tuong ung = %5.2lf", celsius);
}
getch();
}
/* Bai tap 1_21 - In day so Fibonanci */
#include <stdio.h>
void main()
{
int n, i, fib1 = 1, fib2 = 1, fib = 2;
printf("
Nhap gia tri N : ");
scanf("%d", &n);
printf("%d %d ", fib1, fib2);
while (fib1+fib2 < n)
{
fib = fib1 + fib2;
printf("%d ", fib);
fib2 = fib1;
fib1 = fib;
}
getch();
}
/* Bai tap 1_68 - Tap hop thong tin */
#include <stdio.h>
void main()
{
char s[100], s1[100], s2[100], filename1[50], filename2[50];
FILE *fp1, *fp2;
printf("
Cho viet ten tap tin thu nhat : ");
gets(filename1);
if ((fp1 = fopen(filename1, "w+")) == NULL)
printf("
Khong the tao tap tin %s", filename1);
else
{
printf("
Cho viet ten tap tin thu nhat : ");
gets(filename2);
if ((fp2 = fopen(filename2, "w+")) == NULL)
printf("
Khong the tao tap tin %s", filename2);
else
{
do {
printf("
Ho ten (ENTER de ket thuc) : ");
if (strlen(s) > 0)
{
strcat(s, "
");
fputs(s, fp1);
printf("
Tuoi : ");
strcat(s, "
");
fputs(s, fp1);
printf("
Dia chi : ");
strcat(s, "
");
fputs(s, fp1);
}
} while (strlen(s) > 0);
fclose(fp1);
fp1 = fopen(filename1, "r");
while (fgets(s, 100, fp1) != NULL)
{
fgets(s1, 100, fp1);
fgets(s2, 100, fp1);
s[strlen(s)-1] = 0;
s1[strlen(s1)-1] = 0;
fprintf(fp2, "%s %s %s", s, s1, s2);
}
fclose(fp2);
}
}
}
/* Bai tap 1_86 - Doc va ghi len file mot mang 2 chieu 10x10 */
#include <stdio.h>
#define MAX 10
char filename[] = "MANG1010.DAT";
void main()
{
int mang[MAX][MAX], i, j;
FILE *fp;
if ((fp = fopen(filename, "w+")) == NULL)
printf("
Khong the tao tap tin %s", filename);
else
{
printf("
Nhap cac phan tu cua mang : ");
for (i=0; i<MAX; i++)
for (j=0; j<MAX; j++)
{
printf("
Mang[%d][%d] = ", i, j);
scanf("%d", &mang[i][j]);
}
fwrite(&mang, sizeof(int), MAX * MAX, fp);
fclose(fp);
printf("
Viec ghi hoan tat.");
}
getch();
}
/* Bai tap 3_1 - Ham tinh N! */
#include <stdio.h>
unsigned long giaithua(int n)
{
unsigned long ketqua = 1;
for (i=2; i<=n; i++)
ketqua *= i;
return ketqua;
}
void main()
{
printf("
Nhap vao gia tri N : ");
scanf("%d", &n);
printf("%d! = %lu", n, giaithua(n));
getch();
}
#include <stdio.h>
void main()
{
int a[10], i;
printf("
Nhap vao 10 phan tu nguyen cua day : ");
for (i=0; i<10; i++)
scanf("%d", &a[i]);
i = 1;
while (a[i] <= a[i-1] && i<10)
i++;
if (i==10)
printf("Day da cho la day giam");
else
printf("Day da cho khong la day giam");
getch();
}
/* Bai tap 2_6 - Cho biet goc thuoc goc vuong nao */
#include <stdio.h>
void main()
{
int goc;
printf("
Nhap vao gia tri goc : ");
scanf("%d", &goc);
printf("Goc do thuoc goc vuong thu %d", (goc/90)%4 + 1);
getch();
}
/* Bai tap - Bai toan Gonbach */
#include <stdio.h>
#define MAX 100
void main()
{
unsigned long nguyento[MAX], i, j, l, k=0, n;
for (i=1; i<MAX; i++)
if (i%2 == 1)
{
for (j=2; j<i; j++)
if (i%j == 0)
break;
if (j >= i)
nguyento[k++] = i;
}
for (n=0; n<k; n++)
for (i=0; i<k; i++)
for (j=0; j<k; j++)
for (l=0; l<k; l++)
if (nguyento[i] + nguyento[j] + nguyento[l] == nguyento[n])
printf("
%ld = %ld + %ld + %ld", nguyento[n], nguyento[i],
nguyento[j], nguyento[l]);
getch();
}
/* Bai tap 1_20 - Tinh n!! */
#include <stdio.h>
void main()
{
int n, start, i;
unsigned long gthua = 1;
printf("
Nhap gia tri N : ");
scanf("%d", &n);
if (n%2 == 0)
start = 2;
else
start = 1;
for (i=start; i<=n; i = i+2)
gthua *= i;
printf("
%d!! = %ld", n, gthua);
getch();
}
/* Bai tap 2_8 - In so Hex tuong ung voi mot so nguyen duong */
#include <stdio.h>
void main()
{
unsigned number;
char hex[] = "0123456789ABCDEF";
printf("
Nhap 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();
}
#include <stdio.h>
#include <string.h>
void main(int argc, char *argv[])
{
FILE *fp;
char s[255];
if (argc <= 1)
printf("
Cach su dung :
Hienfile <ten tap tin>");
else
if ((fp = fopen(argv[1], "r")) == NULL)
printf("
Khong the mo tap tin %s", argv[1]);
else
while (fgets(s, 255, fp))
{
s[strlen(s) - 1] = 0;
if (strlen(s))
puts(s);
}
getch();
}
#include <stdio.h>
void main(int argc, char *argv[])
{
FILE *fp;
char c;
if (argc <= 1)
printf("
Cach su dung :
Hienfile <ten tap tin>");
else
if ((fp = fopen(argv[1], "r")) == NULL)
printf("
Khong the mo tap tin %s", argv[1]);
else
{
while ((c = fgetc(fp)) != EOF)
putc(c, stdout);
}
getch();
}
/* Bai tap 1_15 - Tinh dien tich cac hinh hoc */
#include <stdio.h>
#include <conio.h>
#include <math.h>
int menu()
{
int c;
printf("
----- Menu -----");
printf("
1. Hinh tam giac");
printf("
2. Hinh tron");
printf("
3. Hinh vuong");
printf("
4. Hinh chu nhat");
printf("
0. Thoat");
printf("
----------------");
printf("
Chon muc : ");
do {
c = getch();
} while (c>'4' || c<'0');
putc(c, stdout);
return c -'0';
}
void hinhtamgiac()
{
int a, b, c;
float p;
printf("
Nhap vao ba canh tam giac : ");
scanf("%d%d%d", &a, &b, &c);
printf("
Chu vi tam giac = %d", a+b+c);
p = (float)(a + b + c)/2;
printf("
Dien tich tam giac = %lf", sqrt(p*(p-a)*(p-b)*(p-c)));
getch();
}
void hinhtron()
{
printf("
Nhap vao ban kinh hinh tron : ");
scanf("%d", &r);
printf("
Chu vi hinh tron = %f", 2 * M_PI * r);
printf("
Dien tich hinh tron = %f", M_PI * r * r);
getch();
}
void hinhvuong()
{
int a;
printf("
Nhap vao canh hinh vuong : ");
scanf("%d", &a);
printf("
Chu vi hinh tron = %d", 4 * a);
printf("
Dien tich hinh vuong = %d", a * a);
getch();
}
void hinhchunhat()
{
int a, b;
printf("
Nhap vao cac canh hinh chu nhat : ");
scanf("%d%d", &a, &b);
printf("
Chu vi hinh chu nhat = %d", 2 * (a+b));
printf("
Dien tich hinh chu nhat = %d", b * a);
getch();
}
void main()
{
int chon;
do {
chon = menu();
switch(chon)
{
case 1 : hinhtamgiac();
break;
case 2 : hinhtron();
break;
case 3 : hinhvuong();
break;
case 4 : hinhchunhat();
break;
}
} while (chon != 0);
}
/* Bai tap 1_47 - Liet ke tat cac cac hoan vi cua n phan tu */
#include <stdio.h>
#define MAX 10
int mang[MAX], n;
void swap (int *x, int *y)
{
tmp = *x;
*x = *y;
*y = tmp;
}
void hoanvi(int k)
{
int j;
if (k==1)
{
printf("
");
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()
{
printf("
Cho biet so phan tu (N < 10) : ");
scanf("%d", &n);
for (i=0; i<n; i++)
mang[i] = i;
hoanvi(n);
getch();
}
/* Giai he phuong trinh bac nhat */
#include <stdio.h>
void main()
{
int a, b, c, d, e, f, dthuc;
float x, y;
printf("
Nhap vao cac he so a,b,c,d,e,f : ");
scanf("%d%d%d%d%d%d", &a, &b, &c, &d, &e, &f);
dthuc = b*d - e*a;
if (dthuc != 0)
{
y = (float)(c*d-a*f)/dthuc;
x = (float)(b*f-c*e)/dthuc;
printf("Nghiem x = %f, y = %f", x, y);
}
else
printf("
He phuong trinh vo ngiem.");
getch();
}
/* In chuoi theo cac tu, moi tu mot dong */
#include <stdio.h>
void main()
{
char s[50];
int i, len;
printf("
Nhap vao mot chuoi : ");
len = strlen(s);
i = 0;
while (i<len)
{
while (s[i] == ' ' && i<len)
i++;
while (s[i] != ' ' && i<len)
putc(s[i++], stdout);
putc('
', stdout);
}
getch();
}
/* Cho biet ma ban phim */
#include <stdio.h>
void main()
{
char c;
printf("
Nhap vao mot phim muon biet ma cua no. ESC de thoat
");
do {
c = getch();
if (c == 0)
{
c = getch();
printf("
Ma mo rong : %d", c);
}
else
printf("
Ma thuong : %d", c);
} while (c != 27);
}
/* Bai tap 2_4 - In chu so phan tram, chuc, don vi */
#include <stdio.h>
void main()
{
int n, tram, chuc, donvi;
printf("
Nhap vao mot so tu 100 - 999 : ");
scanf("%d", &n);
tram = n;
donvi = tram % 10;
tram /= 10;
chuc = tram % 10;
tram /= 10;
printf("
So hang tram = %d", tram);
printf("
So hang chuc = %d", chuc);
printf("
So hang don vi = %d", donvi);
getch();
}
/* Bai tap 1_86 - Tro choi Logic */
#include <conio.h>
#include <dos.h>
#include <string.h>
#include <stdlib.h>
#include<stdio.h>
int day[7] = {-1,-1,-1,-1,-1,-1,-1};
int sonhap[4];
int somay[4];
int solanthu;
int timthay;
void khoitao()
{
char tieude[] = "L O G I C G A M E";
int j, i, dich;
textmode(C40);
clrscr();
textcolor(YELLOW);
dich = (40 - strlen(tieude)) / 2;
for (i=strlen(tieude)-1; i>=0; i--)
{
movetext(1,3,39,3,2,3);
gotoxy(1,3);
putch(tieude[i]);
delay(40);
}
for (i=1; i<=dich; i++)
{
movetext(1,3,39,3,2,3);
gotoxy(1,3);
putch(' ');
delay(40);
}
randomize();
for (i=0; i<4; i++)
{
do {
j = random(6)+1;
} while (day[j] != -1);
day[j] = i;
somay[i] = j;
// printf ("%d",&j);
}
gotoxy(14,5); cprintf("ÉÍÍÍÍÍÍÑÍÍÍÍÍÍ»");
for (i=0; i<6; i++)
{
gotoxy(14,5+i*2+1); cprintf("º ³ º");
gotoxy(14,5+i*2+2); cprintf("ÇÄÄÄÄÄÄÅÄÄÄÄÄĶ");
}
gotoxy(14,17); cprintf("ÈÍÍÍÍÍÍÏÍÍÍÍÍͼ");
solanthu = 1;
timthay = 0;
textcolor(WHITE);
gotoxy(1, 25);
cprintf("Nhap chuoi 4 so khac nhau tu 1 den 6");
}
void nhapso()
{
char c;
for (i=0; i<4; i++)
sonhap[i]=0;
gotoxy(16,5+solanthu*2-1);
do {
c = getch();
switch(c)
{
case '1' :
case '2' :
case '3' :
case '4' :
case '5' :
case '6' : textcolor(c-39);
cprintf("%c",c);
sonhap[wherex()-16-1] = c - 48;
if (wherex()==20)
gotoxy(wherex()-1, wherey());
break;
case 0 :
c = getch();
switch(c)
{
case 75 : if (wherex()>16)
gotoxy(wherex()-1,wherey());
break;
case 77 : if (wherex()<19)
gotoxy(wherex()+1,wherey());
break;
}
break;
default : sound(880);
delay(100);
nosound();
}
} while (!((c=='\r') && (sonhap[0] != 0) && (sonhap[1] != 0)
&& (sonhap[2] != 0) && (sonhap[3] != 0)));
}
void kiemtra()
{
int diem = 0, i;
for (i=0; i<4; i++)
if (day[sonhap[i]] != -1)
if (day[sonhap[i]] == i)
diem += 10;
else
diem ++;
if (diem==40)
timthay=1;
else
{
int sotrung, sotrat;
sotrung=diem / 10;
sotrat = diem % 10;
textcolor(GREEN);
gotoxy(23,5+solanthu*2-1);
for (i=1; i<=sotrung; i++)
cprintf("+");
textcolor(WHITE);
for (i=1; i<=sotrat; i++)
cprintf("-");
solanthu ++;
}
}
void main()
{
khoitao();
do {
nhapso();
kiemtra();
} while ((solanthu <= 6) && (timthay==0));
if (timthay==1)
{
textcolor(YELLOW+BLINK);
gotoxy(1,23);
cprintf("Ban da thang.");
}
else
{
textcolor(GREEN+BLINK);
gotoxy(1,23);
cprintf("Ban da thua.");
textcolor(YELLOW);
}
cprintf(" Ket qua dung = ");
for (i=0; i<4; i++)
{
textcolor(somay[i]+9+BLINK);
cprintf("%c",somay[i]+48);
}
getch();
}
/* Ma hoa dung XOR */
#include <stdio.h>
void main()
{
char chuoi[50], khoa;
int i, len;
printf("
Nhap vao chuoi can ma hoa : ");
gets(chuoi);
printf("Cho biet khoa : ");
khoa = getch();
len = strlen(chuoi);
for (i=0; i<len; i++)
chuoi[i] ^= khoa;
printf("
Chuoi da duoc ma hoa thanh : %s", chuoi);
printf("
Nhan phim bat ky de giai ma.");
getch();
for (i=0; i<len; i++)
chuoi[i] ^= khoa;
printf("
Chuoi da duoc giai ma : %s", chuoi);
getch();
}
/* Bai 6_2 - Tim phan tu lon nhat va nho nhat trong mang 1 chieu */
#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();
}
/* Bai tap 1_70 - Ma hoa 1 file bang phep XOR */
#include <stdio.h>
void main()
{
char c, filein[50], fileout[50], key;
FILE *fpin, *fpout;
printf("
Cho biet ten tap tin nguon : ");
gets(filein);
printf("
Cho biet ten tap tin dich : ");
gets(fileout);
printf("
Cho biet khoa : ");
scanf("%c", &key);
if ((fpin = fopen(filein, "r")) == NULL)
printf("Khong tim thay tap tin %s", filein);
else
if ((fpout = fopen(fileout, "w+")) == NULL)
{
printf("Khong the tao tap tin %s", fileout);
fclose(fpin);
}
else
{
do {
c = fgetc(fpin);
if (c != EOF)
fputc(c ^ key, fpout);
} while (c != EOF);
fclose(fpin);
fclose(fpout);
printf("
Cong viec hoan tat");
}
getch();
}
/* Bai tap 6_1 */
#include <conio.h>
#include <stdlib.h>
void main()
{
int matran[10][10];
int i, j, tonghang[10], tongcot[10], tongdcc=0, count=0;
/* Khoi tao mang ngau nhien */
randomize();
for (i=0; i<10; i++)
for (j=0; j<10; j++)
matran[i][j] = random(10) + 1;
/* Tinh tong cac hang */
for (i=0; i<10; i++)
{
tonghang[i] = 0;
for (j=0; j<10; j++)
tonghang[i] += matran[i][j];
}
/* Tinh tong cac cot */
for (j=0; j<10; j++)
{
tongcot[j] = 0;
for (i=0; i<10; i++)
tongcot[i] += matran[i][j];
}
/* Tinh tong duong cheo chinh */
for (i=0; i<10; i++)
tongdcc += matran[i][i];
/* Dem so luong cac phan tu co gia tri nho hon 6 */
for (i=0; i<10; i++)
for (j=0; j<10; j++)
if (matran[i][j] < 6)
count++;
/* In ma tran va cac gia tri cua chung */
clrscr();
for (i=0; i<10; i++)
{
textcolor(WHITE);
for (j=0; j<10; j++)
cprintf ("%4d", matran[i][j]);
textcolor(YELLOW);
cprintf("%4d
\r", tonghang[i]);
}
textcolor(LIGHTBLUE);
for (j=0; j<10; j++)
cprintf("%4d", tongcot[j]);
textcolor(LIGHTGREEN);
cprintf("%4d", tongdcc);
textcolor(WHITE);
cprintf("
\rTong cac phan tu nho hon 6 = %3d", count);
getch();
}
/* Bai tap 1_16 - Tinh xem so N co phai la so nguyen to khong? */
#include <stdio.h>
#include <math.h>
void main()
{
int N, i, OK = 1;
printf("
Nhap gia tri N : ");
scanf("%d", &N);
for (i=2; i<(int)sqrt(N); i++)
if (N%i == 0)
{
OK = 0;
break;
}
if (OK)
printf("
So %d la so nguyen to.", N);
else
printf("
So %d khong phai la so nguyen to.", N);
getch();
}
/* Bai tap 1_99 - Minh hoa phep nhan tay */
#include <stdio.h>
void nhantay(unsigned long sobn, unsigned long son)
{
unsigned long k, n;
int i=0;
char s[20];
printf("
%20ld
", sobn);
ltoa(son, s, 10);
for (i=0; i<18-strlen(s); i++)
printf(" ");
printf("X %s", s);
printf("
------------");
n = son;
i = 0;
while (n>0)
{
k = n%10;
n /= 10;
k *= sobn;
ltoa(k, s, 10);
printf("
");
gotoxy(21 - strlen(s) - i, wherey());
cprintf("%s", s);
i++;
}
ltoa(sobn*son, s, 10);
printf("
------------
");
gotoxy(21 - strlen(s), wherey());
cprintf("%s", s);
}
void main()
{
unsigned long sobinhan, sonhan;
printf("\Nhap so bi nhan : ");
scanf("%ld", &sobinhan);
printf("\Nhap so nhan : ");
scanf("%ld", &sonhan);
nhantay(sobinhan, sonhan);
getch();
}
#include <stdio.h>
void main()
{
FILE *fp1, *fp2, *fpout;
char sf1[50], sf2[50], sfout[50];
int c;
printf("
Nhap ten tap tin thu nhat : ");
scanf("%s", &sf1);
printf("
Nhap ten tap tin thu hai : ");
scanf("%s", &sf2);
printf("
Nhap ten tap tin ket qua : ");
scanf("%s", &sfout);
if ((fp1 = fopen(sf1, "r")) == NULL)
fprintf(stderr, "Khong the mo tap tin %s
", sf1);
if ((fp2 = fopen(sf2, "r")) == NULL)
fprintf(stderr, "Khong the mo tap tin %s
", sf2);
if ((fpout = fopen(sfout, "w")) == NULL)
fprintf(stderr, "Khong the mo tap tin %s
", sfout);
while ((c = getc(fp1)) != EOF)
putc(c, fpout);
while ((c = getc(fp2)) != EOF)
putc(c, fpout);
fclose(fp1);
fclose(fp2);
fclose(fpout);
printf("
Hoan tat! Nhan phim bat ky de ket thuc.");
getch();
}
#include <stdio.h>
#include <conio.h>
#define N 15
void main()
{
int i, j, tgpascal[N], tmp[N];
clrscr();
tgpascal[0] = 1;
for (i=1; i<N; i++)
tgpascal[i] = 0;
for (i=0; i<N; i++)
{
for (j=0; j<=i; j++)
tmp[j] = tgpascal[j];
printf("
%5d", tmp[0]);
for (j=1; j<=i; j++)
{
tmp[j] += tgpascal[j-1];
printf("%5d", tmp[j]);
}
for (j=0; j<=i; j++)
tgpascal[j] = tmp[j];
}
getch();
}
/* Phan so */
#include <stdio.h>
int USCLN(int a, int b)
{
a = abs(a);
b = abs(b);
while (a != 0 && b != 0)
if (a > b)
a -= b;
else
b -= a;
if (a == 0)
return b;
else
return a;
}
int BSCNN(int a, int b)
{
return a * b / USCLN(a, b);
}
typedef struct tagphanso {
int tuso, mauso;
} PHANSO;
PHANSO uocluoc(PHANSO a)
{
PHANSO c;
c.tuso = a.tuso / USCLN(a.tuso, a.mauso);
c.mauso = a.mauso / USCLN(a.tuso, a.mauso);
return c;
}
PHANSO cong(PHANSO a, PHANSO b)
{
PHANSO c;
c.tuso = a.tuso * b.mauso + a.mauso * b.tuso;
c.mauso = a.mauso * b.mauso;
c = uocluoc(c);
return c;
}
PHANSO tru(PHANSO a, PHANSO b)
{
PHANSO c;
c.tuso = a.tuso * b.mauso - a.mauso * b.tuso;
c.mauso = a.mauso * b.mauso;
c = uocluoc(c);
return c;
}
PHANSO nhan(PHANSO a, PHANSO b)
{
PHANSO c;
c.tuso = a.tuso * b.tuso;
c.mauso = a.mauso * b.mauso;
c = uocluoc(c);
return c;
}
PHANSO chia(PHANSO a, PHANSO b)
{
PHANSO c;
c.tuso = a.tuso * b.mauso;
c.mauso = a.mauso * b.tuso;
c = uocluoc(c);
return c;
}
void print(PHANSO a)
{
printf("%d/%d", a.tuso, a.mauso);
}
void main()
{
PHANSO a, b, c;
printf("
Nhap phan so a : ");
scanf("%d%d", &a.tuso, &a.mauso);
printf("
Nhap phan so b : ");
scanf("%d%d", &b.tuso, &b.mauso);
printf("
Toi gian a ta duoc : ");
a = uocluoc(a);
print(a);
printf("
Toi gian b ta duoc : ");
b = uocluoc(b);
printf("
Tong cua hai phan so = ");
c = cong(a, b);
print(c);
printf("
Hieu cua hai phan so = ");
c = tru(a, b);
print(c);
printf("
Tich cua hai phan so = ");
c = nhan(a, b);
print(c);
printf("
Thuong cua hai phan so = ");
c = chia(a, b);
print(c);
getch();
}
/* Bai tap 1_102 - Tro choi pha san */
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int player[2], luot = 0, y;
void giam0()
{
player[0]--;
gotoxy(player[0]%5*2+1, y + player[0]/5);
cprintf(" ");
gotoxy(player[1] % 5*2 + 25, y + player[1]/5);
cprintf("*");
player[1]++;
}
void giam1()
{
player[1]--;
gotoxy(player[1]%5*2+25, y + player[1]/5);
cprintf(" ");
gotoxy(player[0] % 5*2 + 1, y + player[0]/5);
cprintf("*");
player[0]++;
}
void main()
{
int i, n, k, dong, tudong = 0;
char c;
randomize();
player[0] = player[1] = 20;
clrscr();
printf("Tro choi tung dong tien sap ngua.");
printf("
Hai nguoi choi A va B se lan luot tung dong tien");
printf("
Neu den luot nguoi nao ma tung ra dong sap thi");
printf("
Nguoi kia se bi mat tien va nguoc lai.");
printf("
Tro choi se ket thuc neu mot nguoi het tien hoac nhan ESC.
");
printf("
A \t\t B
");
y = wherey();
for (i=0; i<4; i++)
printf("* * * * *\t\t* * * * *
");
gotoxy(1,y+11);
cprintf("Nhan phim bat ky de di hoac T de choi tu dong");
do {
gotoxy(1,y+10);
cprintf("Den luot %c di : ", luot + 'A');
if (tudong)
{
delay(100);
if (kbhit())
c = getch();
}
else
{
c = toupper(getch());
if (c == 'T')
tudong = 1;
}
if (c != 27)
{
n = random(100);
dong = random(2);
for (k=0; k<n; k++)
{
if (dong == 1)
dong = 0;
else
dong = 1;
gotoxy(18,y+10);
cprintf("%d", dong);
delay(10);
}
if (dong == 0)
{
if (luot == 1)
giam1();
else
giam0();
}
else
{
if (luot == 1)
giam0();
else
giam1();
}
if (luot == 0)
luot = 1;
else
luot = 0;
}
} while (player[0] > 0 && player[1] > 0 && c != 27);
gotoxy(1,y+12);
if (player[0] ==0)
cprintf("A da het tien roi!");
else if (player[1] ==0)
cprintf("B da het tien roi!");
else
cprintf("Khong bai bac la tot!!!");
getch();
}
/* Bai tap 1_12 - Chuong trinh Piano don gian */
#include <stdio.h>
#include <dos.h>
#include <ctype.h>
void main()
{
char c;
printf("
Nhan cac phim A, B, C, D, E, F, G de choi cac not nhac.");
printf("
Nhan phim ESC de ket thuc.");
do {
c = toupper(getch());
switch(c)
{
case 'A' : sound(440);
break;
case 'B' : sound(494);
break;
case 'C' : sound(523);
break;
case 'D' : sound(587);
break;
case 'E' : sound(659);
break;
case 'F' : sound(698);
break;
case 'G' : sound(784);
break;
}
delay(100);
nosound();
} while (c != 27);
}
/* Tim nhung gia tri nguyen x, y, z thoa xý + yý = zý */
#include <math.h>
void main()
{
long x, y, z, count = 0;
for (x=1; x<100; x++)
for (y=1; y<100; y++)
{
z = sqrt(x*x+y*y);
if (z*z == x*x + y*y)
{
printf("
%6ld %6ld %6ld", x, y, z);
count++;
}
}
printf("
Tong cong co %ld cap so thoa man.", count);
getch();
}
#include <stdio.h>
void main()
{
int n, a[100], i, x;
printf("
Nhap vao so luong phan tu cua mang : ");
scanf("%d", &n);
printf("Nhap vao cac phan tu cua mang : ");
for (i=0; i<n; i++)
scanf("%d", &a[i]);
printf("
Nhap vao gia tri x : ");
scanf("%d", &x);
printf("
Cac phan tu lon hon %d gom co : ", x);
printf("
Chi so Gia tri");
for (i=0; i<n; i++)
if (a[i] > x)
printf("
%4d %6d", i, a[i]);
getch();
}
/* Bai tap 1_49 - Chuong trinh Puzzle 15 so */
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define XSTART 30
int board[4][4];
int xspace, yspace;
void khoitao()
{
int i, j;
for (i=0; i<4; i++)
for (j=0; j<4; j++)
board[i][j] = i*4 + j + 1;
board[3][3] = 0;
}
void veboard()
{
int i, j;
textattr(14);
clrscr();
gotoxy(XSTART, 2);
cprintf("ÉÍÍÍÍËÍÍÍÍËÍÍÍÍËÍÍÍÍ»");
for (i=0; i<4; i++)
{
gotoxy(XSTART, 2*i+3);
cprintf("º º º º º");
gotoxy(XSTART, 2*i+4);
cprintf("ÌÍÍÍÍÎÍÍÍÍÎÍÍÍÍÎÍÍÍ͹");
}
gotoxy(XSTART, 10);
cprintf("ÈÍÍÍÍÊÍÍÍÍÊÍÍÍÍÊÍÍÍͼ");
for(i=0; i<4; i++)
for (j=0; j<4; j++)
{
gotoxy(XSTART+1 + j*5, i*2+3);
cprintf("%3d", board[i][j]);
}
gotoxy(XSTART+16, 9);
cprintf(" ");
gotoxy(XSTART, 12);
cprintf("Nhan S de bat dau.");
gotoxy(XSTART, 13);
cprintf("ESC de ket thuc.");
xspace = 3;
yspace = 3;
}
void dichtrai()
{
if (xspace < 3 )
{
board[yspace][xspace] = board[yspace][xspace+1];
board[yspace][xspace+1] = 0;
gotoxy(XSTART+1 + xspace*5, yspace*2+3);
cprintf("%3d", board[yspace][xspace]);
xspace++;
gotoxy(XSTART+1 + xspace*5, yspace*2+3);
cprintf(" ");
}
}
void dichphai()
{
if (xspace > 0 )
{
board[yspace][xspace] = board[yspace][xspace-1];
board[yspace][xspace-1] = 0;
gotoxy(XSTART+1 + xspace*5, yspace*2+3);
cprintf("%3d", board[yspace][xspace]);
xspace--;
gotoxy(XSTART+1 + xspace*5, yspace*2+3);
cprintf(" ");
}
}
void dichlen()
{
if (yspace < 3 )
{
board[yspace][xspace] = board[yspace+1][xspace];
board[yspace+1][xspace] = 0;
gotoxy(XSTART+1 + xspace*5, yspace*2+3);
cprintf("%3d", board[yspace][xspace]);
yspace++;
gotoxy(XSTART+1 + xspace*5, yspace*2+3);
cprintf(" ");
}
}
void dichxuong()
{
if (yspace > 0 )
{
board[yspace][xspace] = board[yspace-1][xspace];
board[yspace-1][xspace] = 0;
gotoxy(XSTART+1 + xspace*5, yspace*2+3);
cprintf("%3d", board[yspace][xspace]);
yspace--;
gotoxy(XSTART+1 + xspace*5, yspace*2+3);
cprintf(" ");
}
}
{
int i, j;
for (i=0; i<4; i++)
for (j=0; j<4; j++)
if (i!=yspace || j!=xspace)
if (board[i][j] != i*4 + j + 1)
return 0;
textattr(15);
gotoxy(XSTART, 14);
cprintf("Hoan ho, ban da thang");
getch();
return 1;
}
void run()
{
int done = 0, sobuoc = 0, i, n = 0;
char c;
randomize();
while (n < 100)
{
i = random(4);
switch(i)
{
case(0) : dichtrai();
break;
case(1) : dichphai();
break;
case(2) : dichlen();
break;
case(3) : dichxuong();
break;
}
n++;
}
gotoxy(XSTART, 12);
cprintf("%c %c %c %c de di chuyen.", 24, 25, 26, 27);
do {
c = getch();
if (c == 0)
c = getch();
switch(c)
{
case 27 : done = 1;
break;
case 75 : dichtrai();
break;
case 77 : dichphai();
break;
case 72 : dichlen();
break;
case 80 : dichxuong();
break;
}
sobuoc++;
gotoxy(XSTART, 11);
cprintf("So buoc : %d", sobuoc);
if (!done)
done = test();
} while (!done);
}
void main()
{
char c;
khoitao();
veboard();
do {
c = toupper(getch());
} while (c != 27 && c != 'S');
if (c == 'S')
run();
}
/* Bai tap 1_61 - Quan ly danh sach hoc sinh */
#include <stdio.h>
#define MAX 100
typedef struct hocsinh {
char hoten[35];
char lop[7];
float diemtoan, diemly, diemhoa;
} HOCSINH;
HOCSINH danhsach[MAX];
int numrecords = 0;
char filename[] = "DANHSACH.DAT";
void main()
{
int done = 0, i;
char hoten[35];
float diem;
do {
printf("
Ho ten (trong de thoat) : ");
gets(hoten);
if (strlen(hoten) == 0)
done = 1;
else
{
strcpy(danhsach[numrecords].hoten, hoten);
printf("
Lop : ");
gets(danhsach[numrecords].lop);
printf("
Diem toan : ");
scanf("%f", &diem);
danhsach[numrecords].diemtoan = diem;
printf("
Diem ly : ");
scanf("%f", &diem);
danhsach[numrecords].diemly = diem;
printf("
Diem hoa : ");
scanf("%f%*c", &diem);
danhsach[numrecords].diemhoa = diem;
numrecords++;
}
} while (!done);
for (i=0; i<numrecords; i++)
{
printf("
+-----+------------------------------------+--------+------+------+------+");
printf("
| STT | H O V A T E N | L O P | TOAN | LY | HOA |");
printf("
+-----+------------------------------------+--------+------+------+------+");
for (i=0; i<numrecords; i++)
{
printf("
| %3d | ", i+1);
printf("%-35s| %-7s| %4.1f | %4.1f | %4.1f |", danhsach[i].hoten,danhsach[i].lop,
danhsach[i].diemtoan, danhsach[i].diemly, danhsach[i].diemhoa);
}
printf("
+-----+------------------------------------+--------+------+------+------+");
}
getch();
}
/* Bai tap 1_61 - Quan ly danh sach hoc sinh */
#include <stdio.h>
#define MAX 100
typedef struct hocsinh {
char hoten[35];
char lop[7];
float diemtoan, diemly, diemhoa;
} HOCSINH;
HOCSINH danhsach[MAX];
int numrecords = 0;
char filename[] = "DANHSACH.DAT";
int menu()
{
char c;
clrscr();
printf("+----- Menu -----+");
printf("
+----------------+");
printf("
+ 1. Nhap +");
printf("
+ 2. Xoa +");
printf("
+ 3. Sua doi +");
printf("
+ 4. Liet ke +");
printf("
+----------------+");
printf("
+ 5. Luu len dia +");
printf("
+ 6. Lay tu dia +");
printf("
+----------------+");
printf("
+ 0. Thoat +");
printf("
+----------------+");
printf("
Chon muc : ");
do {
c = getch();
} while (c<'0' || c>'6');
return c-'0';
}
void nhapmoi()
{
int done = 0;
char hoten[35];
float diem;
do {
printf("
Ho ten (trong de thoat) : ");
gets(hoten);
if (strlen(hoten) == 0)
done = 1;
else
{
strcpy(danhsach[numrecords].hoten, hoten);
printf("
Lop : ");
gets(danhsach[numrecords].lop);
printf("
Diem toan : ");
scanf("%f", &diem);
danhsach[numrecords].diemtoan = diem;
printf("
Diem ly : ");
scanf("%f", &diem);
danhsach[numrecords].diemly = diem;
printf("
Diem hoa : ");
scanf("%f%*c", &diem);
danhsach[numrecords].diemhoa = diem;
numrecords++;
}
} while (!done);
}
void xoa()
{
int i, done = 0, found, dump[MAX];
char hoten[35], hotentmp[35];
while (!done)
{
if (numrecords != 0)
{
printf("
Ho ten hoc sinh can xoa (trong de thoat) : ");
gets(hoten);
if (strlen(hoten) == 0)
done = 1;
else
{
i = found = 0;
do {
strcpy(hotentmp,danhsach[i].hoten);
if (strcmp(strupr(hoten), strupr(hotentmp)) == 0)
dump[found++] = i;
i++;
} while (i<numrecords);
if (!found)
printf("
Khong tim thay hoc sinh co ten %s", hoten);
else
{
for (i=0; i<found; i++)
{
printf("
%3d %-35s %-7s %4.1f %4.1f %4.1f", i+1, danhsach[dump[i]].hoten,danhsach[dump[i]].lop,
danhsach[dump[i]].diemtoan, danhsach[dump[i]].diemly, danhsach[dump[i]].diemhoa);
}
printf("
Tim thay %d hoc sinh.", found);
printf("
Chon thu tu muon xoa (neu muon huy bo thi chon so khong nam trong pham vi): ");
scanf("%d", &i);
if (i >= 1 && i <= found)
{
for (found=dump[i-1]; found<numrecords-1; found++)
danhsach[found] = danhsach[found+1];
numrecords--;
printf("
Da huy");
}
else
printf("
Viec xoa bi huy bo.");
}
done = 1;
}
getch();
}
else
done = 1;
}
}
void sua()
{
int i, done = 0, found, dump[MAX];
char hoten[35], hotentmp[35];
float diem;
while (!done)
{
if (numrecords != 0)
{
printf("
Ho ten hoc sinh can sua (trong de thoat) : ");
gets(hoten);
if (strlen(hoten) == 0)
done = 1;
else
{
i = found = 0;
do {
strcpy(hotentmp,danhsach[i].hoten);
if (strcmp(strupr(hoten), strupr(hotentmp)) == 0)
dump[found++] = i;
i++;
} while (i<numrecords);
if (!found)
printf("
Khong tim thay hoc sinh co ten %s", hoten);
else
{
for (i=0; i<found; i++)
{
printf("
%3d %-35s %-7s %4.1f %4.1f %4.1f", i+1, danhsach[dump[i]].hoten,danhsach[dump[i]].lop,
danhsach[dump[i]].diemtoan, danhsach[dump[i]].diemly, danhsach[dump[i]].diemhoa);
}
printf("
Tim thay %d hoc sinh.", found);
printf("
Chon thu tu muon sua doi (neu muon huy bo thi chon so khong nam trong pham vi): ");
scanf("%d%*c", &i);
if (i >= 1 && i <= found)
{
printf("
%s
Ho ten : ", danhsach[dump[i-1]].hoten);
gets(danhsach[dump[i-1]].hoten);
printf("
%s
Lop : ", danhsach[dump[i-1]].lop);
gets(danhsach[dump[i-1]].lop);
printf("
%4.2f
Diem toan : ",danhsach[dump[i-1]].diemtoan);
scanf("%f", &diem);
danhsach[dump[i-1]].diemtoan = diem;
printf("
%4.2f
Diem ly : ", danhsach[dump[i-1]].diemly);
scanf("%f", &diem);
danhsach[dump[i-1]].diemly = diem;
printf("
%4.2f
Diem hoa : ", danhsach[dump[i-1]].diemhoa);
scanf("%f%*c", &diem);
danhsach[dump[i-1]].diemhoa = diem;
printf("
Da thay doi");
}
else
printf("
Viec thay doi bi huy bo.");
}
done = 1;
}
getch();
}
else
done = 1;
}
}
void lietke()
{
if (numrecords != 0)
{
printf("
+-----+------------------------------------+--------+------+------+------+");
printf("
| STT | H O V A T E N | L O P | TOAN | LY | HOA |");
printf("
+-----+------------------------------------+--------+------+------+------+");
for (i=0; i<numrecords; i++)
{
printf("
| %3d | ", i+1);
printf("%-35s| %-7s| %4.1f | %4.1f | %4.1f |", danhsach[i].hoten,danhsach[i].lop,
danhsach[i].diemtoan, danhsach[i].diemly, danhsach[i].diemhoa);
}
printf("
+-----+------------------------------------+--------+------+------+------+");
}
getch();
}
void getdata()
{
char c;
int start, nrec;
FILE *fp;
long curpos, length;
start = 0;
if (numrecords != 0)
{
printf("
Dang co du lieu trong bo nho. Co muon noi them vao khong?(C/K)");
c = toupper(getch());
if (c == 'C')
start = numrecords;
else
start = 0;
}
if ((fp = fopen(filename, "r")) == NULL)
printf("
Khong the mo tap tin %s", filename);
else
{
curpos = ftell(fp);
fseek(fp, 0L, SEEK_END);
length = ftell(fp);
fseek(fp, curpos, SEEK_SET);
nrec = length / sizeof(HOCSINH);
fread(&danhsach[start], sizeof(HOCSINH), nrec, fp);
fclose(fp);
printf("
Them vao %d records.", nrec);
numrecords = numrecords + nrec;
getch();
}
}
void putdata()
{
FILE *fp;
if ((fp = fopen(filename, "w+")) == NULL)
printf("
Khong thay ghi tap tin %s", filename);
else
{
fwrite(&danhsach[0], sizeof(HOCSINH), numrecords, fp);
fclose(fp);
printf("
Ghi %d records.", numrecords);
getch();
}
}
void main()
{
int chon, done = 0;
do {
chon = menu();
switch(chon)
{
case 1 : nhapmoi();
break;
case 2 : xoa();
break;
case 3 : sua();
break;
case 4 : lietke();
break;
case 5 : putdata();
break;
case 6 : getdata();
break;
case 0 : done = 1;
}
} while (!done);
}
/* Bai tap 1_75 - Lay lai noi dung man hinh tu tap tin SCREEN.DAT */
#include <stdio.h>
#include <mem.h>
#include <dos.h>
void main()
{
char far *video;
FILE *fp;
video = (char far*)MK_FP(0xB800, 0);
if ((fp = fopen("SCREEN.DAT", "r+b")) == NULL)
printf("
Khong the tao tap tin SCREEN.DAT");
else
{
for (i=0; i<4000; i++)
video[i] = fgetc(fp);
fclose(fp);
}
getch();
}
/* Giai thuat sang Erastosthene */
#include <stdio.h>
void main()
{
static int NT[1000], i, k;
printf("
Cac so nguyen to nho hon 1000 :
");
for (i=2; i<1000; i++)
if (NT[i] == 0)
{
k = 1;
while (k*i<1000)
NT[i*k++] = 1;
printf("%4d ", i);
}
getch();
}
/* Bai tap 1_74 - Luu noi dung man hinh vao tap tin SCREEN.DAT */
#include <stdio.h>
#include <mem.h>
#include <dos.h>
void main()
{
char far *video;
FILE *fp;
video = (char far*)MK_FP(0xB800, 0);
if ((fp = fopen("SCREEN.DAT", "w+b")) == NULL)
printf("
Khong the tao tap tin SCREEN.DAT");
else
{
i = 0;
for (i=0; i<4000; i++)
fputc(video[i], fp);
fclose(fp);
printf("
Cong viec hoan tat");
}
getch();
}
#include <stdio.h>
#include <math.h>
double giaithua(double n)
{
double i, ketqua=1;
for (i=2; i<=n; i++)
ketqua *= i;
return ketqua;
}
void main()
{
double ketqua, epsilon, x, n = 1;
printf("
Nhap gia tri x (radian) : ");
scanf("%lf", &x);
ketqua = x;
do {
epsilon = pow(x, 2*n+1) / giaithua(2*n+1);
ketqua += pow(-1, n) * epsilon;
n++;
} while (fabs(epsilon) > 0.0001);
printf("
Ket qua tinh theo cong thuc = %10.8lf", ketqua);
printf("
Ket qua tinh theo ham = %10.8lf", sin(x));
getch();
}
/* Bai tap 1_101 - Chuong trinh sinh tu ngau nhien */
#include <stdio.h>
#include <stdlib.h>
#define MAX 7
#define NUM 100
void main()
{
int i, n, k;
char s[MAX+1];
randomize();
printf("
");
for (n=0; n<NUM; n++)
{
s[0] = random('Z'-'A'+1) + 'A';
k = random(MAX) + 1;
for (i=1; i<k; i++)
s[i] = random('z'-'a'+1) + 'a';
s[i] = 0;
printf("%-8s", s);
}
getch();
}
/* Bai tap 1_88 - Dien gia tri cho mot mang vuong theo chieu kim dong ho */
#include <stdio.h>
void main()
{
int n, w, hang, cot, chanhangtang, chanhanggiam, chancottang, chancotgiam;
int matran[12][12], tang, giam;
printf("
Chuong trinh in ma tran dac biet.");
do {
printf("
Nhap kich thuoc cua ma tran (3 <= n <= 12) : ");
scanf("%d%*c",&n);
} while (! (n >=3 && n<=12) );
hang = cot = 0;
chanhangtang = chancottang = n-1;
chanhanggiam = chancotgiam = 0;
/*
tang co 4 gia tri :
tang = 0 -> tang cot
tang = 1 -> tang hang
tang = 2 -> giam cot
tang = 3 -> giam cot
*/
tang = 0;
for (w=0; w<n*n; w++)
{
matran[hang][cot]= w + 1;
switch(tang)
{
case 0 : if (cot < chancottang)
cot++;
else
{
tang++; // Chuyen sang tang hang
chanhanggiam++;
hang++;
}
break;
case 1 : if (hang < chanhangtang)
hang++;
else
{
tang++; // Chuyen sang giam cot
chancottang--;
cot--;
}
break;
case 2 : if (cot > chancotgiam)
cot--;
else
{
tang++; // Chuyen sang giam hang
chanhangtang--;
hang--;
}
break;
case 3 : if (hang > chanhanggiam)
hang--;
else
{
tang=0; // Chuyen sang tang cot
chancotgiam++;
cot++;
}
break;
}
}
for (hang=0; hang < n; hang++)
{
printf("
");
for (cot=0; cot < n; cot++)
printf("%4d", matran[hang][cot]);
}
getch();
}
/* Bai tap 1_89 - In cac gia tri cua mot mang vuong theo chieu kim dong ho */
#include <stdio.h>
#include <conio.h>
#include <dos.h>
void main()
{
int m, n, w, hang, cot, chanhangtang, chanhanggiam, chancottang, chancotgiam;
int matran[12][12], tang, giam;
printf("
Chuong trinh in ma tran dac biet.");
do {
printf("
Nhap so hang cua ma tran (3 <= n <= 12) : ");
scanf("%d%*c",&n);
} while (! (n >=3 && n<=12) );
do {
printf("
Nhap so cot cua ma tran (3 <= m <= 12) : ");
scanf("%d%*c",&m);
} while (! (m >=3 && m<=12) );
/* Nhap ma tran */
for (hang=0; hang <n; hang++)
for (cot=0; cot<m; cot++)
{
printf("phan tu [%02d][%02d] = ",hang,cot);
scanf("%d",&matran[hang][cot]);
}
hang = cot = 0;
chanhangtang = n-1;
chancottang = m-1;
chanhanggiam = chancotgiam = 0;
/*
tang co 4 gia tri :
tang = 0 -> tang cot
tang = 1 -> tang hang
tang = 2 -> giam cot
tang = 3 -> giam cot
*/
tang = 0;
clrscr();
for (w=0; w<n*m; w++)
{
gotoxy(10 + cot * 4, 3 + hang);
printf("%4d",matran[hang][cot]);
delay(200);
switch(tang)
{
case 0 : if (cot < chancottang)
cot++;
else
{
tang++; // Chuyen sang tang hang
chanhanggiam++;
hang++;
}
break;
case 1 : if (hang < chanhangtang)
hang++;
else
{
tang++; // Chuyen sang giam cot
chancottang--;
cot--;
}
break;
case 2 : if (cot > chancotgiam)
cot--;
else
{
tang++; // Chuyen sang giam hang
chanhangtang--;
hang--;
}
break;
case 3 : if (hang > chanhanggiam)
hang--;
else
{
tang=0; // Chuyen sang tang cot
chancotgiam++;
cot++;
}
break;
}
}
getch();
}
#include <stdio.h>
char s[50] = "";
char *bachuso(unsigned int n)
{
char kyso[10][5]= {"", "mot", "hai", "ba", "bon", "nam", "sau",
"bay", "tam", "chin"};
int donvi, chuc, tram;
s[0] = 0;
donvi = n % 10;
n /= 10;
chuc = n % 10;
tram = n / 10;
if (tram > 0)
{
strcat(s, kyso[tram]);
strcat(s, " tram ");
}
if (chuc > 0)
{
if (chuc == 1)
strcat(s, "muoi ");
else
{
strcat(s, kyso[chuc]);
strcat(s, " muoi ");
}
}
if (donvi > 0)
{
if (chuc == 0 && tram != 0)
strcat(s, "le ");
if (donvi == 1)
strcat(s, "mot");
else if (donvi == 5 && (chuc != 0 || tram != 0))
strcat(s, "lam");
else if (donvi == 5 && (chuc = 0 || tram != 0))
strcat(s, "nam");
else
strcat(s, kyso[donvi]);
}
return s;
}
void main()
{
unsigned long n;
unsigned ngan, trieu, ty, donvi;
char chuoi[200];
printf("
Nhap mot so khong dau : ");
scanf("%ld", &n);
printf("So %ld doc bang chu la :
", n);
if (n == 0)
printf("khong");
else
{
donvi = n % 1000;
n /= 1000;
ngan = n % 1000;
n /= 1000;
trieu = n % 1000;
ty = n / 1000;
chuoi[0] = 0;
if (ty > 0)
printf("%s ty ", bachuso(ty));
if (trieu > 0)
printf("%s trieu ", bachuso(trieu));
if (ngan > 0)
printf("%s ngan ", bachuso(ngan));
if (donvi > 0)
printf("%s", bachuso(donvi));
}
getch();
}
/* Bai tap 1_19 - Tim cac so hoan hao nho hon N */
#include <stdio.h>
void main()
{
int n, i, j, tong;
printf("
CHo biet gia tri 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("
%d", i);
}
getch();
}
/* Tim so nguyen to nho hon N */
#include <stdio.h>
void main()
{
int n, i, j;
printf("
Nhap gia tri N : ");
scanf("%d", &n);
printf("
Cac so nguyen to nho hon n la : ");
for (i=2; i<n; i++)
{
for (j=2; j<i; j++)
if (i%j == 0)
break;
if (j == i)
printf("%d ", i);
}
getch();
}
/* Bai tap 1_90 - Minh hoa phuong phap sap xep doi cho truc tiep */
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <dos.h>
#define MAX 10 // so luong phan tu toi da (khong duoc qua 10)
#define DONG 10 // dong bat dau in mang
#define DELAY 300
int mang[MAX]; // Bien toan cuc
int cot = (80 - 5 * MAX) / 2;
void hoandoi(int i, int j)
{
int xi = cot + 2 + i * 5;
int xj = cot + 2 + j * 5;
int xdest = xj;
int yi = DONG + 1;
int yj = DONG + 1;
int k, l;
textcolor(YELLOW);
for (k = 0; k<2; k++)
{
gotoxy(xi,yi--);
cprintf(" ");
gotoxy(xj,yj++);
cprintf(" ");
gotoxy(xi,yi);
cprintf("%2d",mang[i]);
gotoxy(xj,yj);
cprintf("%2d",mang[j]);
delay(DELAY);
}
while (xi<xdest)
{
gotoxy(xi++,yi);
cprintf(" ");
gotoxy(xj--,yj);
cprintf(" ");
gotoxy(xi,yi);
cprintf("%2d",mang[i]);
gotoxy(xj,yj);
cprintf("%2d",mang[j]);
delay(DELAY);
}
for (k = 0; k<2; k++)
{
gotoxy(xi,yi++);
cprintf(" ");
gotoxy(xj,yj--);
cprintf(" ");
gotoxy(xi,yi);
cprintf("%2d",mang[i]);
gotoxy(xj,yj);
cprintf("%2d",mang[j]);
delay(DELAY);
}
xdest = mang[i];
mang[i] = mang[j];
mang[j] = xdest;
}
void in_bien_i(int i)
{
gotoxy(cot+(i-1)*5+1,DONG-3);
textcolor(BLACK);
cprintf("%c",25);
gotoxy(cot+(i)*5+1,DONG-3);
textcolor(WHITE + BLINK);
cprintf("%c",25);
delay(DELAY);
}
void in_bien_j(int j)
{
gotoxy(cot+(j-1)*5+1,DONG+5);
textcolor(BLACK);
cprintf("%c",24);
gotoxy(cot+(j)*5+1,DONG+5);
textcolor(WHITE + BLINK);
cprintf("%c",24);
delay(DELAY);
}
void main()
{
// Phan khai bao bien
char tieude[]="CHUONG TRINH DEMO MOT PHUONG PHAP SAP XEP (SORT)";
char khungtrai[3] = {'É','º','È'};
char khungtrong[3] = {'Ë','º','Ê'};
char khungphai[3] = {'»','º','¼'};
char c;
int i, j;
// Xoa man hinh
textmode(C80);
textattr(14);
clrscr();
// In dong tieu de
gotoxy((80-strlen(tieude))/2,2);
cprintf("%s",tieude);
// Khoi tao mang mot cach ngau nhien
randomize();
for (i=0; i<MAX; i++)
mang[i] = random(100);
// In mang ra man hinh
textcolor(WHITE);
for (i=0;i<3;i++)
{
gotoxy(cot,DONG+i);
cprintf("%c", khungtrai[i]);
}
for (j=0; j<MAX; j++)
{
textcolor(WHITE);
gotoxy(cot+j*5+1,DONG);
cprintf("Í ÍÍ");
textcolor(YELLOW);
gotoxy(cot+j*5+2,DONG+1);
cprintf("%2d",mang[j]);
textcolor(WHITE);
gotoxy(cot+j*5+1,DONG+2);
cprintf("Í ÍÍ");
for (i=0;i<3;i++)
{
gotoxy(cot+(j+1)*5,DONG+i);
cprintf("%c", khungtrong[i]);
}
}
for (i=0;i<3;i++)
{
gotoxy(cot+MAX*5,DONG+i);
cprintf("%c", khungphai[i]);
}
// In cau thong bao va cho nguoi su dung nhan phim de thuc hien
textcolor(11);
gotoxy (1,24);
cprintf("Nhan phim A : Sap xep tang dan - D : Sap xep giam dan");
gotoxy (1,DONG-4);
cprintf("Bien i");
gotoxy (1,DONG+6);
cprintf("Bien j");
do
{
c = toupper(getch());
} while ((c != 'A') && (c != 'D'));
// Bat dau thuc hien sap xep
switch (c)
{
case 'A' :
for (i=0; i<MAX-1; i++)
{
in_bien_i(i);
for (j=i+1; j<MAX; j++)
{
in_bien_j(j);
if (mang[i] > mang[j])
hoandoi(i,j);
}
gotoxy(cot+(j-1)*5+1,DONG+5);
textcolor(BLACK);
cprintf("%c",24);
}
break;
case 'D' :
for (i=0; i<MAX-1; i++)
{
in_bien_i(i);
for (j=i+1; j<MAX; j++)
{
in_bien_j(j);
if (mang[i] < mang[j])
hoandoi(i,j);
}
gotoxy(cot+(j-1)*5+1,DONG+5);
textcolor(BLACK);
cprintf("%c",24);
}
break;
}
gotoxy(cot+(i-1)*5+1,DONG-3);
textcolor(BLACK);
cprintf("%c",25);
// Thong bao va cho nguoi dung nhan phim de ket thuc
gotoxy(1,24);
clreol();
textcolor(13+BLINK);
cprintf("Nhan phim bat ky de ket thuc");
getch();
}
/* Bai tap 1_66 - Sort tap tin */
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
void main()
{
int i, j, mang[MAX], m;
FILE *fp;
randomize();
if ((fp = fopen("SFILE.DAT", "w+")) == NULL)
printf("
Khong the tao tap tin SFILE.DAT");
else
{
printf("
");
for (i=0; i<MAX; i++)
{ m = random(100);
fprintf(fp, "%d ", m);
printf("%d ", m);
}
fclose(fp);
fp = fopen("SFILE.DAT", "r");
for (i=0; i<MAX; i++)
fscanf(fp, "%d", &mang[i]);
fclose(fp);
for (i=0; i<MAX-1; i++)
for (j=i+1; j<MAX; j++)
if (mang[j] < mang[i])
{
m = mang[i];
mang[i] = mang[j];
mang[j] = m;
}
printf("
");
fp = fopen("SFILE2.DAT", "w+");
for (i=0; i<MAX; i++)
{
fprintf(fp, "%d ", mang[i]);
printf("%d ", mang[i]);
}
fclose(fp);
}
getch();
}
/* Bai tap 1_95 - Tim va thay the mot chuoi con */
/*
Tim kiem va thay the chuoi con trong mot chuoi lon
s : chuoi lon
s1 : chuoi con
s2 : chuoi se thay the
De chac chan khong bi loi thi chuoi s phai co kha nang chua du
*/
#include <stdio.h>
#include <string.h>
char *str_str(char *s, char *s1, char *s2)
{
int len = strlen(s);
int len1 = strlen(s1);
int len2 = strlen(s2);
int i=0, j, luu;
if (len1!=0)
while (i<len)
{
if (s[i] == s1[0])
{
j = 0;
luu = i;
while ((s[luu++] == s1[j++]) && (j < len1)) ;
if (j==len1)
{
memmove(&s[i+len2], &s[i+len1], len - i - len1+1);
memcpy(&s[i],s2,len2);
len = len + len2 - len1;
i += len2;
}
else i ++;
}
else i++;
}
return s;
}
void main()
{
char s[255], s1[20], s2[20];
printf("Nhap vao chuoi lon : "); gets(s);
printf("Nhap vao chuoi tim : "); gets(s1);
printf("Nhap vao chuoi thay the : "); gets(s2);
str_str(s, s1, s2);
printf("Chuoi sau khi tim va thay the la : %s", s);
getch();
}
/* Bai tap 9_2 - Thu tuc tim chuoi con trong mot chuoi */
#include <stdio.h>
void main()
{
char chuoi_lon [125], chuoi_con [10];
int i, j;
printf("
Nhap vao chuoi lon : ");
gets(chuoi_lon);
printf("
Nhap vao chuoi can tim : ");
gets(chuoi_con);
i = 0;
while (chuoi_lon[i] != 0)
{
j = 0;
while (chuoi_lon[i++] == chuoi_con[j++] &&
chuoi_lon[i-1] != 0 && chuoi_con[j-1] != 0)
if (chuoi_lon[i-1] != 0 && chuoi_con[j-1] == 0)
printf("
Tim thay tai vi tri %d", i-j);
}
getch();
}
#include <stdio.h>
#define MAX 100
void main()
{
int day[MAX], i, n, j, tam;
printf("
Cho biet so phan tu cua day : ");
scanf("%d", &n);
printf("Nhap vao cac phan tu : ");
for (i=0; i<n; i++)
scanf("%d", &day[i]);
for (i=0; i<n-1; i++)
for (j=i+1; j<n; j++)
if (day[j] < day[i])
{
tam = day[i];
day[i] = day[j];
day[j] = tam;
}
printf("
Sau khi sap xep : ");
for (i=0; i<n; i++)
printf("%d ", day[i]);
getch();
}
/* Nhap co sap xep */
#include <stdio.h>
#include <mem.h>
#define MAX 100
void main()
{
int day[MAX], n, i, j, tam;
printf("
Cho biet so phan tu cua day : ");
scanf("%d", &n);
printf("Nhap vao cac phan tu : ");
for (i=0; i<n; i++)
{
scanf("%d", &tam);
j = 0;
while (j<i && day[j]<tam)
j++;
if (j<i)
memmove(&day[j+1], &day[j], (i-j)*sizeof(int));
day[j] = tam;
}
printf("
Sau khi nhap : ");
for (i=0; i<n; i++)
printf("%d ", day[i]);
getch();
}
#include <stdio.h>
void main()
{
int a[10], i;
printf("
Nhap vao 10 phan tu nguyen cua day : ");
for (i=0; i<10; i++)
scanf("%d", &a[i]);
i = 1;
while (a[i] >= a[i-1] && i<10)
i++;
if (i==10)
printf("Day da cho la day tang");
else
printf("Day da cho khong la day tang");
getch();
}
/* Bai tap 4_3 - Chuong trinh tinh cuoc TAXI */
#include <stdio.h>
#include <math.h>
void main()
{
unsigned long sotien;
float sokm;
printf("
Ban hay cho biet so km da di duoc : ");
scanf("%f", &sokm);
if (sokm <= 1.0)
sotien = 5000;
else if (sokm <= 30.0)
sotien = 5000 + floor((sokm - 1.0) * 5.0) * 1000;
else
sotien = 150000 + (ceil(sokm) - 30) * 3000;
printf("
So tien can tra = %lu", sotien);
getch();
}
/* Bai tap 1_92 - In hinh tam giac dac */
#include <stdio.h>
#include <conio.h>
void main()
{
int n, i, j;
printf("
Nhap chieu cao cua hinh tam giac : ");
scanf("%d", &n);
for (i=0; i<n; i++)
{
for (j=n-1; j>i; j--)
printf(" ");
for (j=0; j<i*2+1; j++)
printf("*");
printf("
");
}
getch();
}
/* Bai tap 1_67 - Tim so dong, so tu, so ky tu nhap tu ban phim */
#include <stdio.h>
void main()
{
int sokytu=0, dautu = 0, sotu=0, sodong=1;
char c, filename[50];
FILE *fp;
printf("
Cho biet ten tap tin muon xem : ");
gets(filename);
if ((fp = fopen(filename, "r")) == NULL)
printf("Khong tim thay tap tin %s", filename);
else
{
do {
putc(c = fgetc(fp), stdout);
if (c != '
' && c != EOF)
sokytu++;
if (isalnum(c) && dautu == 0)
{
sotu++;
dautu=1;
}
if (!isalnum(c) && dautu == 1)
dautu = 0;
if (c == '
')
sodong++;
} while (c != EOF);
fclose(fp);
printf("
So dong : %d", sodong);
printf("
So tu : %d", sotu);
printf("
So ky tu : %d", sokytu);
}
getch();
}
/* Tinh tich ma tran */
#include <stdio.h>
#define MAX 10
void in_ma_tran(int A[MAX][MAX], int n, int m, char id)
{
int i, j;
printf("
Ma tran %c : ", id);
for (i=0; i<n; i++)
{
printf("
");
for(j=0; j<m; j++)
printf("%3d ",A[i][j]);
}
}
void nhap_so_nguyen(int *value, int min, int max, char id)
{
do {
printf("
Nhap gia tri %c (trong khoang %d den %d)", id, min, max);
scanf("%d", value);
} while (*value < min || *value > max);
}
void main()
{
int A[MAX][MAX], B[MAX][MAX], C[MAX][MAX], n, m, l, i, j, k;
nhap_so_nguyen(&n, 2, MAX, 'n');
nhap_so_nguyen(&m, 2, MAX, 'm');
nhap_so_nguyen(&l, 2, MAX, 'l');
printf("
Nhap ma tran A : ");
for (i=0; i<n; i++)
for (j=0; j<m; j++)
{
printf("A[%d,%d] = ", i, j);
scanf("%d", &(A[i][j]));
}
printf("
Nhap ma tran B : ");
for (i=0; i<m; i++)
for (j=0; j<l; j++)
{
printf("B[%d,%d] = ", i, j);
scanf("%d", &(B[i][j]));
}
in_ma_tran(A, n, m, 'A');
in_ma_tran(B, n, m, 'B');
for (i=0; i<n; i++)
for (j=0; j<l; j++)
{
C[i][j] = 0;
for (k=0; k<m; k++)
C[i][j] += A[i][k] * B[k][j];
}
in_ma_tran(C, n, m, 'C');
getch();
}
/* Tinh da thuc bac N */
#define MAX 100
float tinhdathuc(float heso[], float x, int n)
{
float tong = 0.0;
for (i=0; i<n; i++)
{
tong = (tong + heso[i]) * x;
}
tong += heso[n];
return tong;
}
void main()
{
float heso[MAX], x;
int n, i;
printf("
Cho biet so bac : ");
scanf("%d", &n);
printf("
Nhap vao cac he so :");
for (i=0; i<=n; i++)
scanf("%f", &heso[i]);
printf("
Nhap vao gia tri X : ");
scanf("%f", &x);
printf("
Ket qua tinh = %f", tinhdathuc(heso, x, n));
getch();
}
/* Tong hai so chi gio */
void main()
{
int gio1, phut1, giay1, gio2, phut2, giay2, gio3 = 0, phut3 = 0, giay3;
printf("
Nhap vao gia tri chi gio thu nhat (hh:mm:gg): ");
scanf("%d:%d:%d", &gio1, &phut1, &giay1);
printf("
Nhap vao gia tri chi gio thu hai (hh:mm:gg): ");
scanf("%d:%d:%d", &gio2, &phut2, &giay2);
giay3 = giay1 + giay2;
if (giay3 >=60)
{
giay3 %=60;
phut3 = 1;
}
phut3 += phut1 + phut2;
if (phut3 >=60)
{
phut3 %=60;
gio3 = 1;
}
gio3 += gio1 + gio2;
gio3 %= 24;
printf("
Tong hai gia tri gio tren = %2d:%2d:%2d", gio3, phut3, giay3);
getch();
}
/* Bai tap 1_29 - Tinh so PI voi sai so 0.0001 */
#include <stdio.h>
#include <math.h>
void main()
{
double PI = 1.0, n = 3.0;
int i = 0;
while (1.0/n > 0.0001)
{
if (i%2 == 0)
PI -= 1.0/n;
else
PI += 1.0/n;
n += 2;
i++;
}
PI *= 4.0;
printf("
So PI tinh toan duoc la : %lf", PI);
printf("
So M_PI trong C = %lf", M_PI);
getch();
}
/* Bai tap 1_48 - Chuong trinh trac nghiem don gian */
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define MAX 100
typedef struct tagcauhoi {
char *cauhoi, *traloi[4];
int caudung;
} CAUHOI;
CAUHOI cautn[MAX];
int socau = 0;
int socaudung = 0;
char nhapcautraloi()
{
char c;
do {
c = toupper(getch());
} while (c <'A' || c>'D');
textattr(2);
cprintf("%c", c);
return c - 'A';
}
void tracnghiem()
{
int cauhientai= 0, i;
char c;
do {
clrscr();
textattr(1);
cprintf("%s
\r", cautn[cauhientai].cauhoi);
textattr(14);
for (i=0; i<4; i++)
cprintf("\r%c. %s", i+'A', cautn[cauhientai].traloi[i]);
textattr(15);
cprintf("
\rChon cau : ");
c = nhapcautraloi();
if (c == cautn[cauhientai].caudung)
{
cprintf("
\rDung roi!");
delay(500);
socaudung ++;
}
cauhientai++;
} while (cauhientai<socau);
}
void main()
{
FILE *fp;
int i, j;
char tmp[255];
if ((fp = fopen("TNGHIEM.DAT", "r")) == NULL)
printf("
Khong tim thay tap tin TNGHIEM.DAT");
else
{
fscanf(fp, "%d%*c", &socau);
for (i=0; i<socau; i++)
{
fgets(tmp, 255, fp);
cautn[i].cauhoi = strdup(tmp);
for (j=0; j<4; j++)
{
fgets(tmp, 255, fp);
cautn[i].traloi[j] = strdup(tmp);
}
fscanf(fp, "%d%*c", &cautn[i].caudung);
}
fclose(fp);
tracnghiem();
textattr(14);
cprintf("
\rKet qua : ");
textattr(2);
cprintf("%.2f", (float)socaudung*10 / socau);
}
getch();
}
/* Bai tap 3_2 - Ham tinh to hop chap K cua N */
#include <stdio.h>
unsigned long giaithua(int n)
{
unsigned long ketqua = 1;
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("
Nhap 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();
}
/* Bai tap 2_3 - Tinh tong binh phuong hai so nguyen */
#include <stdio.h>
void main()
{
int a, b;
printf("
Nhap hai so nguyen : ");
scanf("%d%d", &a, &b);
printf("Tong %dý + %dý = %d", a, b, a * a + b * b);
getch();
}
/* Tinh tong ma tran */
#include <stdio.h>
#define MAX 10
void in_ma_tran(int A[MAX][MAX], int n, int m, char id)
{
int i, j;
printf("
Ma tran %c : ", id);
for (i=0; i<n; i++)
{
printf("
");
for(j=0; j<m; j++)
printf("%3d ",A[i][j]);
}
}
void nhap_so_nguyen(int *value, int min, int max, char id)
{
do {
printf("
Nhap gia tri %c (trong khoang %d den %d)", id, min, max);
scanf("%d", value);
} while (*value < min || *value > max);
}
void main()
{
int A[MAX][MAX], B[MAX][MAX], C[MAX][MAX], n, m, i, j;
nhap_so_nguyen(&n, 2, MAX, 'n');
nhap_so_nguyen(&m, 2, MAX, 'm');
printf("
Nhap ma tran A : ");
for (i=0; i<n; i++)
for (j=0; j<m; j++)
{
printf("A[%d,%d] = ");
scanf("%d", &(A[i][j]));
}
printf("
Nhap ma tran B : ");
for (i=0; i<n; i++)
for (j=0; j<m; j++)
{
printf("B[%d,%d] = ");
scanf("%d", &(B[i][j]));
}
in_ma_tran(A, n, m, 'A');
in_ma_tran(B, n, m, 'B');
for (i=0; i<n; i++)
for (j=0; j<m; j++)
C[i][j] = A[i][j] + B[i][j];
in_ma_tran(C, n, m, 'C');
getch();
}
/* Bai tap 1_94 - Bai toan tram trau */
/* Giai bai toan co :
Tram trau tram co
Trau dung an nam
Trau nam an ba
Trau gia an mot
*/
#include <stdio.h>
#include <conio.h>
void main()
{
int tdung, tnam, tgia, phuongan=0;
for (tdung = 1; tdung <= 98; tdung ++)
for (tnam = 1; tnam < 99 - tdung; tnam ++)
for (tgia = 1; tgia < 99 - (tdung + tnam); tgia++)
if ((tdung*5 + tnam*3 + tgia) == 100)
{
printf("
Trau dung : %5d ; Trau nam : %5d ; Trau gia : %5d",
tdung, tnam, tgia);
phuongan++;
}
printf("
Tong cong co %d phuong an.", phuongan);
getch();
}
/* Bai tap 9_3 - Viet thu tuc trim de loai bo cac khoang trong thua trong chuoi */
#include <stdio.h>
#include <string.h>
#include <conio.h>
#pragma warn -pia
char *trim(char *chuoi)
{
char *p;
while (p = strstr(chuoi, " "))
memmove(p, p+1, strlen(chuoi) - (p - chuoi));
if (chuoi[0] == ' ')
memmove(chuoi, chuoi+1, strlen(chuoi) - 1);
if (chuoi[strlen(chuoi)-1] == ' ')
chuoi[strlen(chuoi)-1] = 0;
return chuoi;
}
void main()
{
char chuoi[125];
printf("
Nhap chuoi mau : ");
textattr(0x1e);
gets(chuoi);
trim(chuoi);
printf("
Chuoi sau khi da trim : ");
textattr(0x1e);
cputs(chuoi);
getch();
}
/* Tron hai mang tang dan thanh 1 mang tang dan */
#include <stdio.h>
#define MAX 10
void main()
{
int a[MAX], b[MAX], c[2*MAX], n1, n2, i, i1, i2;
printf("
Cho biet so phan tu cua mang thu nhat : ");
scanf("%d", &n1);
printf("Nhap vao cac phan tu (tang dan) cua mang thu nhat : ");
for (i=0; i<n1; i++)
scanf("%d", &a[i]);
printf("
Cho biet so phan tu cua mang thu hai : ");
scanf("%d", &n2);
printf("Nhap vao cac phan tu (tang dan) cua mang thu hai : ");
for (i=0; i<n2; i++)
scanf("%d", &b[i]);
i1 = i2 = 0;
for (i=0; i<n1 + n2; i++)
{
if (i1 >= n1 || i2 >= n2)
break;
if (a[i1] < b[i2])
{
c[i] = a[i1];
i1++;
}
else
{
c[i] = b[i2];
i2++;
}
}
if (i1 < n1)
while (i1 < n1)
c[i++] = a[i1++];
if (i2 < n2)
while (i2 < n2)
c[i++] = b[i2++];
printf("
Cac phan tu cua mang tron : ");
for (i=0; i<n1+n2; i++)
printf("%d ", c[i]);
getch();
}
/* Tron hai mang tang dan thanh 1 mang tang dan */
#include <stdio.h>
#define MAX 10
void main()
{
int a[MAX], b[MAX], c[2*MAX], n1, n2, i, i1, i2;
printf("
Cho 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=0; i<n1; i++)
scanf("%d", &a[i]);
printf("
Cho 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=0; i<n2; i++)
scanf("%d", &b[i]);
i1 = n1-1;
i2 = n2-1;
for (i=0; i<n1 + n2; i++)
{
if (i1 < 0 || 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("
Cac phan tu cua mang tron : ");
for (i=0; i<n1+n2; i++)
printf("%d ", c[i]);
getch();
}
/* Bai tap 1_93 - In tat ca cac uoc so cua so n */
#include <stdio.h>
#include <conio.h>
void main()
{
int n, i;
printf("Cho gia tri N = ");
scanf("%d", &n);
printf("Cac uoc so cua %d la :
", n);
for (i=1; i<n; i++)
if ((n % i) == 0)
printf("%5d", i);
getch();
}
#include <stdio.h>
unsigned USCLN (unsigned n, unsigned m)
{
while (n != 0 && m != 0)
if (n>m)
n -= m;
else
m -= n;
if (n == 0)
return m;
else
return n;
}
unsigned BSCNN (unsigned n, unsigned m)
{
return n * m / USCLN(n, m);
}
void main()
{
unsigned n, m;
printf("
Nhap hai vao so nguyen duong : ");
scanf("%u%u", &n, &m);
printf("
USCLN cua %u va %u = %u", n, m, USCLN(n,m));
printf("
BSCNN cua %u va %u = %u", n, m, BSCNN(n,m));
getch();
}
/* Xem tap tin cho phep cuon */
#include <stdio.h>
#include <conio.h>
void main()
{
FILE *fp;
char filename[50], s[255], *hang[1000], c;
int nline = 0, line = 0, i;
printf("
Nhap ten tap tin muon xem : ");
gets(filename);
if ((fp = fopen(filename,"r")) == NULL)
printf("
Khong the mo tap tin %s", filename);
else
{
while (!feof(fp))
{
fgets(s, 255, fp);
hang[nline] = (char *)malloc(strlen(s));
strcpy(hang[nline], s+1);
nline++;
}
do {
clrscr();
i = line;
while (i<line+26 && i<nline)
printf("%s", hang[i++]);
c = getch();
if (c == 0)
{
c = getch();
switch(c)
{
case 72 : if (line > 0)
line--;
break;
case 80 : if (line+25 < nline)
line++;
break;
}
}
} while (c != 27);
fclose(fp);
}
}
/* Bai tap 9_5 - Tim so tu trong chuoi */
#include <stdio.h>
#include <string.h>
#include <conio.h>
#pragma warn -pia
char *trim(char *chuoi)
{
char *p;
while (p = strstr(chuoi, " "))
memmove(p, p+1, strlen(chuoi) - (p - chuoi));
if (chuoi[0] == ' ')
memmove(chuoi, chuoi+1, strlen(chuoi) - 1);
if (chuoi[strlen(chuoi)-1] == ' ')
chuoi[strlen(chuoi)-1] = 0;
return chuoi;
}
void main()
{
char chuoi[125];
int i = 0, count = 0;
printf("
Nhap chuoi mau : ");
textattr(0x1e);
gets(chuoi);
trim(chuoi);
if (strlen(chuoi))
{
while(chuoi[i] != 0)
if (chuoi[i++] == ' ')
count++;
count++;
}
printf("
So tu co trong chuoi : %d", count);
getch();
}
Bạn đang đọc truyện trên: AzTruyen.Top