Khai báo phân số với hàm dựng struct trong c/c++

#include<iostream>
using namespace std;
struct phanSo
{
	int tuSo;
	int mauSo;
};
typedef phanSo PHANSO;
void nhapPhanSo(PHANSO *x)
{
	cout << "nhap tu so : ";
	cin >> x->tuSo;
	do 
	{
		cout << "\nNhap mau so : ";
		cin >> x->mauSo;
		if (x->mauSo == 0)
		{
			cout << "\nMau so ban vua nhap ko hop le xin kiem tra lai";
		}
	} while (x->mauSo==0);
}
void xuatPhanSo(PHANSO *x)
{
	cout << "\n phan so : " << x->tuSo << '/' << x->mauSo;
}
int main(int argc, char **argv)
{
	PHANSO*x = new PHANSO;
	nhapPhanSo(x);
	xuatPhanSo(x);
	delete x;
	system("pause");
	return 0;
}
1 Like

Cái này

struct phanSo
{
	int tuSo;
	int mauSo;
};
typedef phanSo PHANSO;

cũng tương tự

struct phanSo
    {
    	int tuSo;
    	int mauSo;
    } PHANSO;

phải ko nhỉ?

2 Likes

cho t hỏi (int argc, char **argv) là cái j ạ ?

1 Like

Cái đó là khai báo đầy đủ thay vì int main() như thường dùng.

1 Like

yes nhưng khuyến khích khai báo kiểu kia cho dễ hiểu

Nó có công dụng là mình có thể nhập vào tham số đầu vào cho chương trình cua mình. Ví dụ mình muốn làm một chương trình có thể nhập vào 2 số, tính tổng 2 số đó.

Khi thực thi chương trình mình sẽ chạy như sau

main.exe 3 4

trả ra

7

Lúc đó mình cần cái gọi là “tham số hàm main” này.

Chi tiết một chút, giá trị ta có sẽ là mảng argv, trong đó argc là số lượng tham số, argv là mảng chứa các tham số đó.

với

  • argv[0] là tên của chương trình, trong trờng hợp này là main.exe
  • argv[1] là 3
  • argv[2] là 4
3 Likes

ko phiền nếu anh cho 1 vidu đơn giản về tham số hàm main cho mọi người học hỏi :smile:

Em xem bài này, rất chi tiết nhé: http://www.tutorialspoint.com/cprogramming/c_command_line_arguments.htm

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?