[ create a new paste ] login | about

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

C, pasted on May 6:
/* Câu 2  . 639.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;
	float ketqua;
};
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 InPut(LIST &l)
{
	int n;
	int tusok;
	int mausok;
	printf("\n>>>>>>>>>>>>>>>>>>Nhap Vao Phan So K:<<<<<<<<<<<<<<<<<<<<<<<<<\n");
	printf("\n");
	printf("\nNhap vao tu so cua phan so K:");
	scanf("%d",&tusok);
	do{
		printf("\nNhap vao mau so cua phan so K:");
		scanf("%d",&mausok);
		if(mausok==0)
		{
			printf("\nMau so khong hop le!Xin vui long nhap lai!");
		}
	}while(mausok==0);
	if(mausok<0)
	{
		tusok=tusok*-1;
		mausok=mausok*-1;
	}
	float phansok=(tusok*1.0)/mausok; // Đi tính ra kết quả giá trị thực của phân số k .
	printf("\n");
	printf("\n>>>>>>>>>>>>>>>>>Phan So K:<<<<<<<<<<<<<<<<<<<<\n");
	printf("%d/%d",tusok,mausok);
	printf("\n");
	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;
		}
		x.ketqua=(x.tuso*1.0)/x.mauso; // Đi tính ra kết quả giá trị thực của các phân số trong danh sách liên kết .
		if(x.ketqua<phansok) // Xuất ra những phân số trong danh sách có giá trị nhỏ hơn phân số k ban đầu nhập vào .
		{
			NODE*p=getnode(x);
			AddTail(l,p);
		}
	}
}

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

/* ====================================== Main ============================================= */
void main()
{
	LIST lst;
	int tieptuc;
	quaylai:printf("\n>>>>>>>>>>>>>>>>>>>>>Nhap List:<<<<<<<<<<<<<<<<<<<<<<<<\n");
	InPut(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 69: error: expected ';', ',' or ')' before '&' token
In function 'getnode':
Line 80: error: 'new' undeclared (first use in this function)
Line 80: error: (Each undeclared identifier is reported only once
Line 80: error: for each function it appears in.)
Line 80: error: expected ';' before 'NODE'
t.c: At top level:
Line 90: error: expected ';', ',' or ')' before '&' token
Line 105: error: expected ';', ',' or ')' before '&' token
In function 'OutPut':
Line 174: error: 'for' loop initial declaration used outside C99 mode
In function 'main':
Line 183: warning: return type of 'main' is not 'int'


Create a new paste based on this one


Comments: