fannobita_otatrym
Member
Chắc khai báo tên lung tung đấy, sai chỗ nào thì tự tìm sửa đi chứ, giải thuật để ra đấy rồi
Em khai báo hàm được rồi nhưng không biết cách để đưa vào hàm main ạ, bác giúp em với.
Chắc khai báo tên lung tung đấy, sai chỗ nào thì tự tìm sửa đi chứ, giải thuật để ra đấy rồi
Đề bài thấy toàn bảo khai báo mảng phân số màEm khai báo hàm được rồi nhưng không biết cách để đưa vào hàm main ạ, bác giúp em với.
Sao main trông đơn giản thế, khai báo hẳn PHANSO a[] trong main ấy, rồi viết cái function nhập mảng phân số3.5 Cho trước một phân số K (do người dùng nhập vào), viết chương trình kiểm tra xem phân số K có trong dãy trên hay không? Nếu có trả về 1, ngược lại trả về 0.
post code phần ghép lên xem nàoEm khai báo hàm được rồi nhưng không biết cách để đưa vào hàm main ạ, bác giúp em với.
post code phần ghép lên xem nào
#include <iostream>
using namespace std;
#define MAX 100
struct PHANSO
{
int tu, mau;
};
void NhapPS(PHANSO &ps);
void XuatPS(PHANSO ps);
void NhapMangPS(PHANSO dsps[], int &n);
void XuatMangPS(PHANSO dsps[], int n);
bool Search (PHANSO dsps[], PHANSO x, int n);
int KiemTra(PHANSO ps);
//Tra ve 1: Neu hop le
int USCLN(int a, int b);
PHANSO RutGon(PHANSO ps);
PHANSO Cong(PHANSO ps1, PHANSO ps2);
PHANSO TongCacPS(PHANSO dsps[], int n);
void Bubble_Sort(PHANSO dsps[], unsigned int n);
int main()
{
int n;
PHANSO a[MAX], s;
NhapMangPS(a, n);
printf("\nMang cac phan so vua nhap: ");
XuatMangPS(a, n);
s=TongCacPS(a, n);
printf("\nTong gia tri cac phan so co trong mang: ");
XuatPS(s);
printf("\n Sap xep theo thu tu tang dan: ");
getchar();
}
void NhapPS(PHANSO &ps)
{
do
{
printf("\nNhap tu so: ");
scanf("%d", &ps.tu);
printf("\nNhap mau so: ");
scanf("%d", &ps.mau);
if(!KiemTra(ps))
printf("\nMau so khong duoc bang 0, nhap lai phan so\n");
else
break;
} while(1);
ps=RutGon(ps);
}
void XuatPS(PHANSO ps)
{
printf("%d", ps.tu);
if(ps.tu&&ps.mau!=1)
printf("/%d", ps.mau);
}
void NhapMangPS(PHANSO dsps[], int &n)
{
printf("\nNhap so luong phan so: ");
scanf("%d", &n);
for(int i=0; i<n; i++)
{
printf("\nNhap vao phan so thu %d: ", i+1);
NhapPS(dsps[i]);
}
}
void XuatMangPS(PHANSO dsps[], int n)
{
for(int i=0; i<n; i++)
{
XuatPS(dsps[i]);
printf("\t");
}
}
int KiemTra(PHANSO ps)
{
if(ps.mau==0)
return 0;
return 1;
}
int USCLN(int a, int b)
{
a=abs(a);
b=abs(b);
while(a!=b)
{
if(a>b)
a=a-b;
else
b=b-a;
}
return a;
}
// hàm rút gọn
PHANSO RutGon(PHANSO ps)
{
int us;
if(ps.tu==0)
return ps;
us=USCLN(ps.tu, ps.mau);
ps.tu=ps.tu/us;
ps.mau=ps.mau/us;
return ps;
}
// hàm sắp xếp theo thứ tự tăng dần
void Bubble_Sort(PHANSO dsps[], unsigned int n){
PHANSO temp;
for(unsigned int i = 0; i<n-1; i++)
for(unsigned int j = n-1; j>i;j--)
if((dsps[j].tu/dsps[j].mau)<(dsps[j-1].tu/dsps[j-1].mau))
{
temp = dsps[j];
dsps[j] = dsps[j-1];
dsps[j-1] = temp;
}
}
// hàm cộng các phân số lại và rút gọn kết quả
PHANSO Cong(PHANSO ps1, PHANSO ps2)
{
PHANSO kq;
kq.tu=ps1.tu*ps2.mau+ps1.mau*ps2.tu;
kq.mau=ps1.mau*ps2.mau;
kq=RutGon(kq);
return kq;
}
// hàm tìm phân số
bool search (PHANSO dsps[], PHANSO x, int n)
{
for(int i = 0; i < n; i++)
if (dsps[i].tu == x.tu && dsps[i].mau == x.mau)
return 1;
return 0;
}
// hàm tính tổng
PHANSO TongCacPS(PHANSO dsps[], int n)
{
PHANSO s=dsps[0];
for(int i=1; i<n; i++)
{
s=Cong(s, dsps[i]);
}
return s;
}
#include <iostream>
using namespace std;
#define MAX 100
struct PHANSO {
int tu, mau;
};
void NhapPS(PHANSO &ps);
void XuatPS(PHANSO ps);
void NhapMangPS(PHANSO dsps[], int &n);
void XuatMangPS(PHANSO dsps[], int n);
bool Search(PHANSO dsps[], PHANSO x, int n);
int KiemTra(PHANSO ps);
//Tra ve 1: Neu hop le
int USCLN(int a, int b);
PHANSO RutGon(PHANSO ps);
PHANSO Cong(PHANSO ps1, PHANSO ps2);
PHANSO TongCacPS(PHANSO dsps[], int n);
void swap(int *xp, int *yp);
void Bubble_Sort(PHANSO dsps[], unsigned int n);
int main() {
int n;
PHANSO a[MAX], s;
NhapMangPS(a, n);
printf("\nMang cac phan so vua nhap: ");
XuatMangPS(a, n);
s = TongCacPS(a, n);
printf("\nTong gia tri cac phan so co trong mang: ");
XuatPS(s);
printf("\n Sap xep theo thu tu tang dan: ");
Bubble_Sort(a, n);
XuatMangPS(a, n);
getchar();
}
void NhapPS(PHANSO &ps) {
do {
printf("\nNhap tu so: ");
scanf("%d", &ps.tu);
printf("\nNhap mau so: ");
scanf("%d", &ps.mau);
if (!KiemTra(ps))
printf("\nMau so khong duoc bang 0, nhap lai phan so\n");
else
break;
} while (1);
ps = RutGon(ps);
}
void XuatPS(PHANSO ps) {
printf("%d", ps.tu);
if (ps.tu && ps.mau != 1)
printf("/%d", ps.mau);
}
void NhapMangPS(PHANSO dsps[], int &n) {
printf("\nNhap so luong phan so: ");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("\nNhap vao phan so thu %d: ", i + 1);
NhapPS(dsps[i]);
}
}
void XuatMangPS(PHANSO dsps[], int n) {
for (int i = 0; i < n; i++) {
XuatPS(dsps[i]);
printf("\t");
}
}
int KiemTra(PHANSO ps) {
if (ps.mau == 0)
return 0;
return 1;
}
int USCLN(int a, int b) {
a = abs(a);
b = abs(b);
while (a != b) {
if (a > b)
a = a - b;
else
b = b - a;
}
return a;
}
// hàm rút gọn
PHANSO RutGon(PHANSO ps) {
int us;
if (ps.tu == 0)
return ps;
us = USCLN(ps.tu, ps.mau);
ps.tu = ps.tu / us;
ps.mau = ps.mau / us;
return ps;
}
// hàm sắp xếp theo thứ tự tăng dần
void swap(PHANSO *xp, PHANSO *yp) {
PHANSO temp = *xp;
*xp = *yp;
*yp = temp;
}
void Bubble_Sort(PHANSO dsps[], unsigned int n) {
PHANSO temp;
for (unsigned int i = 0; i < n - 1; i++)
for (unsigned int j = n - 1; j > i; j--)
if ((dsps[j].tu * dsps[j-1].mau) < (dsps[j - 1].tu * dsps[j].mau)) {
swap(&dsps[j], &dsps[j - 1]);
}
}
// hàm cộng các phân số lại và rút gọn kết quả
PHANSO Cong(PHANSO ps1, PHANSO ps2) {
PHANSO kq;
kq.tu = ps1.tu * ps2.mau + ps1.mau * ps2.tu;
kq.mau = ps1.mau * ps2.mau;
kq = RutGon(kq);
return kq;
}
// hàm tìm phân số
bool search(PHANSO dsps[], PHANSO x, int n) {
for (int i = 0; i < n; i++)
if (dsps[i].tu == x.tu && dsps[i].mau == x.mau)
return 1;
return 0;
}
// hàm tính tổng
PHANSO TongCacPS(PHANSO dsps[], int n) {
PHANSO s = dsps[0];
for (int i = 1; i < n; i++) {
s = Cong(s, dsps[i]);
}
return s;
}
Chủ yếu là mình test cái code của Xenforo thôi nhé
C++:void Bubble_Sort(PHANSO A[], unsigned int n){ PHANSO temp; for(unsigned int i = 0; i<n-1; i++) for(unsigned int j = n-1; j>i;j--) if((A[j].tu/A[j].Mau)<(A[j-1].tu/A[j-1].mau)) { temp = A[j]; A[j] = A[j-1]; A[j-1] = temp; } }
C++:bool search (PHANSO a[], PHANSO x, int n) { for(int i = 0; i < n; i++) if (a[i].tu == x.tu && a[i].mau == x.mau) return 1; return 0; }
Cái bubble sort mình copy đại từ mấy kết quả đầu trên Google đấy, có cái linear search là mình gõ ra thôi, lâu lắm rồi không đụng vào C++hàm Bubble sort ông lấy đâu ra đấy, swap mà ko dùng con trỏ. Xong rồi lại còn so sánh a/b < c/d. Dấu chia trong C++ nó ra chia tròn
Yêu bác rấtC++:#include <iostream> using namespace std; #define MAX 100 struct PHANSO { int tu, mau; }; void NhapPS(PHANSO &ps); void XuatPS(PHANSO ps); void NhapMangPS(PHANSO dsps[], int &n); void XuatMangPS(PHANSO dsps[], int n); bool Search(PHANSO dsps[], PHANSO x, int n); int KiemTra(PHANSO ps); //Tra ve 1: Neu hop le int USCLN(int a, int b); PHANSO RutGon(PHANSO ps); PHANSO Cong(PHANSO ps1, PHANSO ps2); PHANSO TongCacPS(PHANSO dsps[], int n); void swap(int *xp, int *yp); void Bubble_Sort(PHANSO dsps[], unsigned int n); int main() { int n; PHANSO a[MAX], s; NhapMangPS(a, n); printf("\nMang cac phan so vua nhap: "); XuatMangPS(a, n); s = TongCacPS(a, n); printf("\nTong gia tri cac phan so co trong mang: "); XuatPS(s); printf("\n Sap xep theo thu tu tang dan: "); Bubble_Sort(a, n); XuatMangPS(a, n); getchar(); } void NhapPS(PHANSO &ps) { do { printf("\nNhap tu so: "); scanf("%d", &ps.tu); printf("\nNhap mau so: "); scanf("%d", &ps.mau); if (!KiemTra(ps)) printf("\nMau so khong duoc bang 0, nhap lai phan so\n"); else break; } while (1); ps = RutGon(ps); } void XuatPS(PHANSO ps) { printf("%d", ps.tu); if (ps.tu && ps.mau != 1) printf("/%d", ps.mau); } void NhapMangPS(PHANSO dsps[], int &n) { printf("\nNhap so luong phan so: "); scanf("%d", &n); for (int i = 0; i < n; i++) { printf("\nNhap vao phan so thu %d: ", i + 1); NhapPS(dsps[i]); } } void XuatMangPS(PHANSO dsps[], int n) { for (int i = 0; i < n; i++) { XuatPS(dsps[i]); printf("\t"); } } int KiemTra(PHANSO ps) { if (ps.mau == 0) return 0; return 1; } int USCLN(int a, int b) { a = abs(a); b = abs(b); while (a != b) { if (a > b) a = a - b; else b = b - a; } return a; } // hàm rút gọn PHANSO RutGon(PHANSO ps) { int us; if (ps.tu == 0) return ps; us = USCLN(ps.tu, ps.mau); ps.tu = ps.tu / us; ps.mau = ps.mau / us; return ps; } // hàm sắp xếp theo thứ tự tăng dần void swap(PHANSO *xp, PHANSO *yp) { PHANSO temp = *xp; *xp = *yp; *yp = temp; } void Bubble_Sort(PHANSO dsps[], unsigned int n) { PHANSO temp; for (unsigned int i = 0; i < n - 1; i++) for (unsigned int j = n - 1; j > i; j--) if ((dsps[j].tu * dsps[j-1].mau) < (dsps[j - 1].tu * dsps[j].mau)) { swap(&dsps[j], &dsps[j - 1]); } } // hàm cộng các phân số lại và rút gọn kết quả PHANSO Cong(PHANSO ps1, PHANSO ps2) { PHANSO kq; kq.tu = ps1.tu * ps2.mau + ps1.mau * ps2.tu; kq.mau = ps1.mau * ps2.mau; kq = RutGon(kq); return kq; } // hàm tìm phân số bool search(PHANSO dsps[], PHANSO x, int n) { for (int i = 0; i < n; i++) if (dsps[i].tu == x.tu && dsps[i].mau == x.mau) return 1; return 0; } // hàm tính tổng PHANSO TongCacPS(PHANSO dsps[], int n) { PHANSO s = dsps[0]; for (int i = 1; i < n; i++) { s = Cong(s, dsps[i]); } return s; }
Vậy không đúng hả bác.hàm Bubble sort ông lấy đâu ra đấy, swap mà ko dùng con trỏ. Xong rồi lại còn so sánh a/b < c/d. Dấu chia trong C++ nó ra chia tròn
Chà mạnh dạn đoán bài tập của TTT.Tình hình là bài nhiều quá mà deadline dí tới đít rồi, một mình em làm không kịp nên mới phải lên đây nhờ vả các bác giúp một tay ạ. Em xin hậu tạ cái card của ít lòng nhiều để các bác nạp data 4G.
Bài 1: Sinh viên sử dụng con trỏ để làm các bài tập sau đây 1.1 Mảng một chiều
Nhập vào một mảng gồm n phần tử nguyên (1 ≤ n ≤ 10,000) và một số nguyên X:
o Những phần tử nào (in ra cả giá trị và vị trí của phần tử đó) là ước số của X?
o Dồn những phần tử là ước số của X về cuối mảng. Sắp xếp các phần tử không
phải là ước số của X theo thứ tự tăng dần (giữ nguyên vị trí các phần tử là ước
số của X).
Nhập vào một mảng các số nguyên dương gồm n phần tử (1 ≤ n ≤ 15):
o Đếm số phần tử tận cùng là 6 và chia hết cho 6 trong mảng o Tính trung bình cộng các số nguyên tố hiện có trong mảng o Cho biết trong mảng có bao nhiêu số nguyên tố phân biệt
Cho mảng A gồm n < 1000 phần tử nguyên |A| ≤ 10,000. Viết hàm thực hiện các công việc sau:
o Trích những phần tử trong A không phải số nguyên tố ra mảng B o Sắp giảm các số nguyên trong mảng B
o Xóa những số nguyên tố trong mảng A
Nhập 2 dãy số nguyên A, B gồm m, n phần tử (1 ≤ n, m ≤ 25):
o Xuất ra những phần tử có trong A mà không có trong B
o Ghép A, B thành C sao cho C không có phần tử trùng nhau
1.2 Mảng hai chiều
Nhập xuất ma trận số nguyên
Tính tổng các phần tử dương trong ma trận
Đếm số lượng số nguyên tố trong ma trận
Tìm số lớn nhất trên biên ma trận.
Tìm số dương nhỏ nhất trong ma trận
Liệt kê các dòng có chứa các giá trị âm trong ma trận.
Liệt kê các dòng chứa toàn số chẵn trong ma trận.
Đếm số lượng giá trị “Yên ngựa” trên ma trận. Một phần tử được gọi là “yên
ngựa” khi nó lớn nhất trên dòng và nhỏ nhất trên cột.
Đếm số lượng giá trị “Hoàng hậu” trên ma trận. Một phần tử được gọi là hoàng
hậu khi nó lớn nhất trên dòng, trên cột và hai đường chéo đi qua nó
Tính tổng các phần tử cực trị trong ma trận. Một phần tử gọi là cực trị khi nó lớn
hơn các phần tử xung quanh hoặc nhỏ hơn các phần tử xung quanh.
Tìm chữ số xuất hiện nhiều nhất trong ma trận
Sắp xếp các giá trị nằm trên biên ma trận tăng dần theo chiều kim đồng hồ
Bài 2: Định nghĩa cấu trúc dữ liệu PhanSo
Thực hiện các yêu cầu sau:
2.1 Viết hàm Nhập và Xuất phân số
2.2 Viết hàm tính Tổng, Hiệu, Tích, Thương của 2 phân số 2.3 Viết hàm Rút gọn (tối giản) phân số
2.4 Viết hàm so sánh 2 phân số a và b. Hàm so sánh trả về 1 nếu a > b, 0 nếu a = b và -1 nếu a < b
Bài 3: Dựa vào cấu trúc dữ liệu PhanSo ở bài 7, viết chương trình xử lý các thao tác sau trên dãy các PhanSo:
3.1 Viết hàm Nhập và Xuất dãy phân số có N phần tử
3.2 Viết hàm tính tổng các phân số có trong dãy
3.3 Viết hàm thay thế các phân số không tối giản có trong dãy trên bằng chính phân số tối giản tương ứng
3.4 Viết hàm Sắp xếp dãy phân số trên tăng dần
3.5 Cho trước một phân số K (do người dùng nhập vào), viết chương trình kiểm tra xem phân số K có trong dãy trên hay không? Nếu có trả về 1, ngược lại trả về 0.
Bài 4: Khai báo cấu trúc biểu diễn đường tròn trong mặt phẳng 2D
4.1 Viết hàm nhập và xuất ra màn hình cấu trúc đường tròn.
4.2 Viết hàm tính chu vi và diện tích của đường tròn.
4.3 Viết hàm kiểm tra tương quan giữa một điểm đối và một đường tròn.
4.4 Viết hàm nhập và xuất mảng đường tròn.
4.5 Viết hàm sắp xếp mảng đường tròn tăng dần theo diện tích.
Học lại vài lần cho chắc bác ạTình hình là bài nhiều quá mà deadline dí tới đít rồi, một mình em làm không kịp nên mới phải lên đây nhờ vả các bác giúp một tay ạ. Em xin hậu tạ cái card của ít lòng nhiều để các bác nạp data 4G.
Bài 1: Sinh viên sử dụng con trỏ để làm các bài tập sau đây 1.1 Mảng một chiều
Nhập vào một mảng gồm n phần tử nguyên (1 ≤ n ≤ 10,000) và một số nguyên X:
o Những phần tử nào (in ra cả giá trị và vị trí của phần tử đó) là ước số của X?
o Dồn những phần tử là ước số của X về cuối mảng. Sắp xếp các phần tử không
phải là ước số của X theo thứ tự tăng dần (giữ nguyên vị trí các phần tử là ước
số của X).
Nhập vào một mảng các số nguyên dương gồm n phần tử (1 ≤ n ≤ 15):
o Đếm số phần tử tận cùng là 6 và chia hết cho 6 trong mảng o Tính trung bình cộng các số nguyên tố hiện có trong mảng o Cho biết trong mảng có bao nhiêu số nguyên tố phân biệt
Cho mảng A gồm n < 1000 phần tử nguyên |A| ≤ 10,000. Viết hàm thực hiện các công việc sau:
o Trích những phần tử trong A không phải số nguyên tố ra mảng B o Sắp giảm các số nguyên trong mảng B
o Xóa những số nguyên tố trong mảng A
Nhập 2 dãy số nguyên A, B gồm m, n phần tử (1 ≤ n, m ≤ 25):
o Xuất ra những phần tử có trong A mà không có trong B
o Ghép A, B thành C sao cho C không có phần tử trùng nhau
1.2 Mảng hai chiều
Nhập xuất ma trận số nguyên
Tính tổng các phần tử dương trong ma trận
Đếm số lượng số nguyên tố trong ma trận
Tìm số lớn nhất trên biên ma trận.
Tìm số dương nhỏ nhất trong ma trận
Liệt kê các dòng có chứa các giá trị âm trong ma trận.
Liệt kê các dòng chứa toàn số chẵn trong ma trận.
Đếm số lượng giá trị “Yên ngựa” trên ma trận. Một phần tử được gọi là “yên
ngựa” khi nó lớn nhất trên dòng và nhỏ nhất trên cột.
Đếm số lượng giá trị “Hoàng hậu” trên ma trận. Một phần tử được gọi là hoàng
hậu khi nó lớn nhất trên dòng, trên cột và hai đường chéo đi qua nó
Tính tổng các phần tử cực trị trong ma trận. Một phần tử gọi là cực trị khi nó lớn
hơn các phần tử xung quanh hoặc nhỏ hơn các phần tử xung quanh.
Tìm chữ số xuất hiện nhiều nhất trong ma trận
Sắp xếp các giá trị nằm trên biên ma trận tăng dần theo chiều kim đồng hồ
Bài 2: Định nghĩa cấu trúc dữ liệu PhanSo
Thực hiện các yêu cầu sau:
2.1 Viết hàm Nhập và Xuất phân số
2.2 Viết hàm tính Tổng, Hiệu, Tích, Thương của 2 phân số 2.3 Viết hàm Rút gọn (tối giản) phân số
2.4 Viết hàm so sánh 2 phân số a và b. Hàm so sánh trả về 1 nếu a > b, 0 nếu a = b và -1 nếu a < b
Bài 3: Dựa vào cấu trúc dữ liệu PhanSo ở bài 7, viết chương trình xử lý các thao tác sau trên dãy các PhanSo:
3.1 Viết hàm Nhập và Xuất dãy phân số có N phần tử
3.2 Viết hàm tính tổng các phân số có trong dãy
3.3 Viết hàm thay thế các phân số không tối giản có trong dãy trên bằng chính phân số tối giản tương ứng
3.4 Viết hàm Sắp xếp dãy phân số trên tăng dần
3.5 Cho trước một phân số K (do người dùng nhập vào), viết chương trình kiểm tra xem phân số K có trong dãy trên hay không? Nếu có trả về 1, ngược lại trả về 0.
Bài 4: Khai báo cấu trúc biểu diễn đường tròn trong mặt phẳng 2D
4.1 Viết hàm nhập và xuất ra màn hình cấu trúc đường tròn.
4.2 Viết hàm tính chu vi và diện tích của đường tròn.
4.3 Viết hàm kiểm tra tương quan giữa một điểm đối và một đường tròn.
4.4 Viết hàm nhập và xuất mảng đường tròn.
4.5 Viết hàm sắp xếp mảng đường tròn tăng dần theo diện tích.
Học trước rồi thì lại chả solo dp, graph , làm éo có thằng nào lần đầu lập trình đi solo dp, graph cảThôi nghĩ đi cháu. Code mà cháu học thụ động vầy thì nát. Ra đi làm chỉ làm gánh nặng cho đồng nhiệp. Ngay xưa t đi học, thầy mới dậy vòng for, mà chúng nó đã code solo mấy bài DP, Graph các kiểu rồi. Mấy bài này quá cơ bản để nhờ ng khác code giùm. Thậm chí google phát là ra ngay.
Thì vậy t mới nói nó học hành thụ động. Người ta thầy chưa dạy là chúng nó đã biết, toàn tự m mò học trc. Sv năm 2 3 đã đi làm hết.Học trước rồi thì lại chả solo dp, graph , làm éo có thằng nào lần đầu lập trình đi solo dp, graph cả