[ create a new paste ] login | about

Link: http://codepad.org/hPp7wtkH    [ raw code | output | fork ]

C, pasted on May 6:
/* Câu 3  . 638.cpp */

/*						Cấu Trúc Dữ Liệu		
BÀI TẬP THỰC HÀNH GIỮA KỲ
Đề 2
|-------------------------------------------------------------|
|	Họ Tên Sinh Viên : Nguyễn Việt Nam Sơn                    |
|	Mã Số Sinh Viên  : 1261031								  |
|	Lớp				 : 12CK1								  |
|	Đề Số            : 2 								      |													  
|-------------------------------------------------------------|		
*/

/*		Đề bài:
Cho cấu trúc Phân số gồm các thông tin sau:
+ tử số: kiểu số nguyên
+ mẫu số: kiểu số nguyên
Viết chương trình thực hiện công việc sau:
1. Nhập vào 1 danh sách liên kết (l) gồm n phân số với n được nhập từ bàn phím. 
Xuất thông tin của n phân số có trong danh sách (l) ra màn hình.

2. Cho phép nhập vào 1 phân số k, xuất tất cả những phân số trong danh sách (l) 
có giá trị nhỏ hơn phân số k.

3. Rút gọn các phân số có trong danh sách (l), xuât danh sách các phân số sau khi 
đã rút gọn.
*/
/* 

Tác giả: Nguyễn Việt Nam Sơn
Trung tâm đào tạo tin học - Thiết kế phần mềm - Sơn Đẹp Trai: www.SonDepTrai.com

Nguồn source code này Tôi viết vào năm 2012 lúc mới bắt đầu học lập trình C/C++ nên một số cách sẽ không được tối ưu - Bạn chỉ nên dùng trên tinh thần tham khảo thôi nhé.
Mong giúp đỡ được Bạn trên con đường Học Lập Trình.
TẤT CẢ VÌ SỰ THÀNH CÔNG CỦA BẠN

*/
/* =============================== Các thư viện =================================== */
#include<stdio.h>
#include<conio.h>
#include<Windows.h>
/* =================================================================================*/

/* =============== Khai báo cấu trúc dữ liệu cho danh sách liên kết đơn các phân số ============== */
struct phanso
{
	int tuso;
	int mauso;
};
typedef struct phanso PHANSO;

struct node
{
	PHANSO Data;
	struct node*pNext;
};
typedef struct node NODE;

struct list
{
	NODE*pHead;
	NODE*pTail;
};
typedef struct list LIST;
/* ================================================================================================ */

/* ========================= Khởi tạo danh sách liên kết đơn ============================ */
void INit(LIST &l)
{
	l.pHead=NULL;
	l.pTail=NULL;
}
/* ==================================================================================== */

/* =======================Tạo Node trong danh sách liên kết đơn các phân số ======================== */
NODE*getnode(PHANSO x)
{
	NODE*p;
	p=new NODE;
	if(p==NULL)
		return NULL;
	p->Data=x;
	p->pNext=NULL;
	return p;
}
/* ===================================================================================== */

/* ===================================Thêm vào cuối danh sách ====================================== */
void AddTail(LIST &l,NODE *new_ele)
{
	if(l.pHead==NULL)
	{
		l.pHead=new_ele;
		l.pTail=l.pHead;
	}
	else
	{
		l.pTail->pNext=new_ele;
		l.pTail=new_ele;
	}
}
/* ========================================================================================= */

void RutGonPhanSo(LIST &l)
{
	int n,dem=0;
	quaylai:printf("\nNhap so luong cac phan so:");
	scanf("%d",&n);
	if(n<0)
	{
		printf("\nSo ban nhap vao khong hop le!Xin vui long nhap lai!");
		goto quaylai;
	}
	INit(l);
	for(int i=1;i<=n;i++)
	{
		PHANSO x;
		printf("\n>>>>>>>>>>>>>>>>>>Moi ban nhap vao phan so thu:%d<<<<<<<<<<<<<<<<<",i);
		printf("\n");
		printf("\nNhap vao tu so cua phan so thu %d:",i);
		scanf("%d",&x.tuso);
		do{
			printf("\nNhap vao mau so cua phan so thu %d:",i);
			scanf("%d",&x.mauso);
			if(x.mauso==0)
			{
				printf("\nMau so khong hop le!Xin vui long nhap lai!");
			}
		}while(x.mauso==0);
		if(x.mauso<0)
		{
			x.tuso=x.tuso*-1;
			x.mauso=x.mauso*-1;
		}
		// Trường hợp rút gọn cả tử và mẫu đều là số dương .
		if(x.tuso>=0&&x.mauso>0)
		{
			int min;
			min=x.tuso;
			if(min>x.mauso)
			{
				min=x.mauso;
			}
			for(int i=min;i>=1;i--)
			{
				if(x.tuso%i==0&&x.mauso%i==0)
				{
					x.tuso=x.tuso/i;
					x.mauso=x.mauso/i;
				}
			}
		}
		// Trường hợp rút gọn tử số là số âm,mẫu số là số dương .
		if(x.tuso<0&&x.mauso>0)
		{
			x.tuso=x.tuso*-1;
			int min;
			min=x.tuso;
			if(min>x.mauso)
			{
				min=x.mauso;
			}
			x.tuso=x.tuso*-1;
			for(int i=min;i>=1;i--)
			{
				if(x.tuso%i==0&&x.mauso%i==0)
				{
					x.tuso=x.tuso/i;
					x.mauso=x.mauso/i;
				}
			}
		}
		// Trường hợp cả tử và mẫu đều là số âm & trường hợp tử là số dương,mẫu là số âm thì không cần làm do khi nhập phân số ta đã đặt điều kiện để xuất ra là nếu mẫu số < 0 thì đồng thời nhân -1 cho cả tử & mẫu .
		NODE*p=getnode(x);
		AddTail(l,p);
	}
}

void OutPut(LIST l)
{
	int dem=0;
	printf("\n>>>>>>>>>>>>>>>>>>Xuat Ra Cac Phan So:<<<<<<<<<<<<<<<<<<<<<<<<\n");
	printf("\n");
	for(NODE*p=l.pHead;p!=NULL;p=p->pNext)
	{
		dem++;
		printf("\nPhan so thu %d Rut Gon La:%d/%d",dem,p->Data);
	}
}

/* ====================================== Main ============================================= */
void main()
{
	LIST lst;
	int tieptuc;
	quaylai:printf("\n>>>>>>>>>>>>>>>>>>>>>Nhap List:<<<<<<<<<<<<<<<<<<<<<<<<\n");
	RutGonPhanSo(lst);
	printf("\n");
	printf("\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Xuat List:<<<<<<<<<<<<<<<<<<<<<<<<\n");
	OutPut(lst);
	printf("\n");
	printf("\nBan co muon tiep tuc thuc hien chuong trinh hay khong ? Neu co bam phim C,nguoc lai bam bat ky 1 phim nao khac de ket thuc!");
	tieptuc=getch();
	if(tieptuc=='c'||tieptuc=='C')
	{
		system("cls");
		goto quaylai;
	}
}
/* ====================================== THE END ======================================================= */


Output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Line 17: error: conio.h: No such file or directory
Line 19: error: Windows.h: No such file or directory
Line 68: error: expected ';', ',' or ')' before '&' token
In function 'getnode':
Line 79: error: 'new' undeclared (first use in this function)
Line 79: error: (Each undeclared identifier is reported only once
Line 79: error: for each function it appears in.)
Line 79: error: expected ';' before 'NODE'
t.c: At top level:
Line 89: error: expected ';', ',' or ')' before '&' token
Line 104: error: expected ';', ',' or ')' before '&' token
In function 'OutPut':
Line 184: error: 'for' loop initial declaration used outside C99 mode
In function 'main':
Line 193: warning: return type of 'main' is not 'int'


Create a new paste based on this one


Comments: