Một số bài mẫu chương 5 - CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT | Trường Đại học Bách khoa Hà Nội

Viết hàm kiểm tra xem xâu vừa nhập vào từ bàn phím có đối xứng hay không. Nếu xâu đối thì trả về giá trị 1, ngược lại thì trả về giá trị 0. duyệt theo thứ tự giữa ta được biểu thức tiền tố. Tài liệu được sưu tầm, giúp bạn ôn tập và đạt kết quả cao. Mời bạn đọc đón xem!

Mt s bài mu chương 5
Bài 1: Hàm tính chu vi ca tam giác với đầu vào là độ dài 3 cnh a, b, c. Hàm tr v giá tr 0 nếu tham s
đầu vào không tha mãn.
GIAI
float tinhChuVi(float a, float b, float c)
{
if(a+b>c && b+c>a && c+a>b)
return a+b+c; //tra ve chu vi
else
return 0;//dau vao khong hop le
}
Bài 2: Viết hàm giải phương trình bậc nht
0ax b
vi tham s đầu vào là giá tr các h s.
GIAI
void giaiPhuongTrinh(float a, float b)
{
if(a==0)
if(b==0) printf("Phuong trinh co vo so nghiem.\n");
else printf("Phuong trinh vo nghiem.\n");
else
printf("Phuong trinh co nghiem duy nhat: %f\n",-b/a);
}
Bài 3: y dng hàm tính giai tha cách ca mt s nguyên
n!! = 135 n nếu n l
n!! = 246 n nếu n chn
GIAI
long giaiThuaCach(int n)
{
long gt=1;
int i;
if(n%2==0) i=2;
else i=1;
for(; i<=n; i=i+2) gt=gt*i;
return gt;
}
Bài 4: Viết hàm in ra màn hình các phn t dương trong mt dãy s thc gm n phn t
GIAI
void inptDuong(float A[], int n)
{
int i;
for(i=0; i<n; i++)
if(A[i]>0) printf("%.2f ",A[i]);
printf("\n");
}
Bài 5: Viết chương trình in giá trị các phn t nằm bên trên đưng chéo chính ca ma trân kích
thưc 5x5.
GIAI
void inDC(float A[5][5])
{
int i,j;
for(i=0;i<5;i++){
for(j=i+1; j<5; j++)
printf("%.2f\t",A[i][j]);
printf("\n");
}
}
Bài 6: Viết m kim tra xem xâu va nhp vào t bàn phím có đi xng hay không. Nếu xâu đối
xng thì tr v giá tr 1, ngược li thì tr v giá tr 0.
Xâu abcba, abdba là xâu đối xng
Xâu abBa không phải xâu đối xng
GIAI
//tìm chiu dài xâu
int strlen(char str[])
{
int i=0;
while(str[i]!='\0') i++;
return i;
}
//kim tra xâu đi xng
int isPalindrome(char str[])
{
int n=strlen(str);
int i=0,mid, check=1;
mid = n/2;
while(check && i<mid)
if(str[i]!=str[n-i-1]) check = 0;
else i++;
return check;
}
Bài 7 : Viết hàm xóa các ký t có giá tr bng c trong mt xâu ký t.
GIAI
void xoaPt(char c, char str[])
{
int j,i=0;
while(str[i]!='\0')
{
if(str[i]==c)
{
j=i+1;
while(str[j]!='\0'){
str[j-1]=str[j];
j++;
}
str[j-1]='\0';
}
else i++;
}
}
| 1/3

Preview text:

Mt s bài mu chương 5
Bài 1: Hàm tính chu vi của tam giác với đầu vào là độ dài 3 cạnh a, b, c. Hàm trả về giá trị 0 nếu tham số
đầu vào không thỏa mãn. GIAI
float tinhChuVi(float a, float b, float c) {
if(a+b>c && b+c>a && c+a>b)
return a+b+c; //tra ve chu vi else
return 0;//dau vao khong hop le
}
Bài 2: Viết hàm giải phương trình bậc nhất ax b  0 với tham số đầu vào là giá trị các hệ số. GIAI
void giaiPhuongTrinh(float a, float b) { if(a==0)
if(b==0) printf("Phuong trinh co vo so nghiem.\n");
else printf("Phuong trinh vo nghiem.\n"); else
printf("Phuong trinh co nghiem duy nhat: %f\n",-b/a);
}
Bài 3: Xây dựng hàm tính giai thừa cách của một số nguyên
n!! = 135 …  n nếu n lẻ
n!! = 246 …  n nếu n chẵn GIAI long giaiThuaCach(int n) { long gt=1; int i; if(n%2==0) i=2; else i=1;
for(; i<=n; i=i+2) gt=gt*i; return gt;
}
Bài 4: Viết hàm in ra màn hình các phần tử dương trong một dãy số thực gồm n phần tử GIAI
void inptDuong(float A[], int n) { int i; for(i=0; i
if(A[i]>0) printf("%.2f ",A[i]); printf("\n"); }
Bài 5: Viết chương trình in giá trị các phần tử nằm bên trên đường chéo chính của ma trân kích thước 5x5. GIAI void inDC(float A[5][5]) { int i,j; for(i=0;i<5;i++){ for(j=i+1; j<5; j++) printf("%.2f\t",A[i][j]); printf("\n"); } }
Bài 6: Viết hàm kiểm tra xem xâu vừa nhập vào từ bàn phím có đối xứng hay không. Nếu xâu đối
xứng thì trả về giá trị 1, ngược lại thì trả về giá trị 0.
Xâu abcba, abdba là xâu đối xứng
Xâu abBa không phải xâu đối xứng GIAI //tìm chiều dài xâu int strlen(char str[]) { int i=0; while(str[i]!='\0') i++; return i; }
//kiểm tra xâu đối xứng int isPalindrome(char str[]) { int n=strlen(str); int i=0,mid, check=1; mid = n/2;
while(check && i if(str[i]!=str[n-i-1]) check = 0; else i++; return check; }

Bài 7 : Viết hàm xóa các ký tự có giá trị bằng c trong một xâu ký tự. GIAI
void xoaPt(char c, char str[]) { int j,i=0; while(str[i]!='\0') { if(str[i]==c) { j=i+1; while(str[j]!='\0'){ str[j-1]=str[j]; j++; } str[j-1]='\0'; } else i++; } }