Bài 4.3: Viết chương
trình cho phép người dùng nhập vào từ bàn phím một dãy các số thực, sau đó cho
phép người dùng:
a. Loại bỏ các phần tử trùng nhau để nhận được một dãy
mới mà mỗi giá trị chỉ xuất hiện một lần,
b. Sắp xếp dãy mới nhận được ở câu a theo chiều tăng dần (hoặc
giảm dần),
c. Cho người dùng nhập vào từ bàn phím một giá trị x, hãy
bổ sung x vào dãy nhận được từ ý b sao cho không làm ảnh hưởng đến tính tăng
(hoặc giảm) của dãy.
//Câu 4.3.(a,b,c): #include <stdio.h> //===chuong trinh chinh=== int main(void) { float a[50],x; int n,i,j,k; printf("Nhap vao so luong phan tu cua day so: ");scanf("%d",&n); //Nhap vao day so thuc printf("Nhap vao day so:\n"); for(i=0;i<n;i++) { printf("\ta[%d] = ",i+1); scanf("%f",&a[i]); } //Dua ra day so da nhap printf("Day so da nhap la: "); for(i=0;i<n;i++) printf("%.2f ",a[i]); //ý a. Loại bỏ các phần tử trùng nhau để nhận được một dãy mới mà mỗi giá trị chỉ xuất hiện một lần, for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[j]==a[i]) do { for(k=j;k<n;k++) a[k]=a[k+1]; n--; } while(a[j]==a[i]); //Dua ra day so sau khi loai bo cac phan tu trung nhau printf("\nDay so da loai cac phan tu trung nhau la: "); for(i=0;i<n;i++) printf("%.2f ",a[i]); //ý b. Sắp xếp dãy mới nhận được ở câu a theo chiều tăng dần for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) { if(a[j]<a[i]) { float tg = a[i]; a[i]=a[j]; a[j]=tg; } } //Dua ra day so da sap xep printf("\nDay so tang dan la: "); for(i=0;i<n;i++) printf("%.2f ",a[i]); //ý c Chen x vao day so ma ko lam anh huong den day tang printf("\nNhap vao gia tri cua so x can chen: ");scanf("%f",&x); n++; for(i=0;i<n-1;i++) { //Neu trong day so co so lon hon x if(a[i]>=x) { for(j=n;j>=i;j--) a[j]=a[j-1]; a[i]=x; break; } //Neu trong day so khong co so nao lon hon x if(a[n-2]<x) { a[n-1]=x; break; } } //Dua ra day so da chen them x printf("Day so da chen them x la: "); for(i=0;i<n;i++) printf("%.2f ",a[i]); return 0; } //===dinh nghia ham===
Coding: Hải Dớ
Chia sẻ:
Chia sẻ
Đăng nhận xét
Cảm Ơn Bạn Đã Để Lại Bình Luận