[ create a new paste ] login | about

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

C, pasted on May 6:
/* Đề Bài : Viết chương trình nhập vào n số nguyên dương lẻ,các số này được lưu dưới dạng danh sách liên kết đơn,liệt kê và tính tổng các số chính phương có trong danh sách . 677.cpp */
/* 

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 sử dụng trong chương trình .
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "Windows.h"

// Khai báo cấu trúc dữ liệu danh sách liên kết đơn các số nguyên dương lẻ .
struct node
{
	int 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 .
NODE*getnode(int 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 liên kết đơn .
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;
	}
}

// Nhập dữ liệu cho danh sách liên kết đơn .
void InPut(LIST &l)
{
	int n;
	quaylai:printf("\nNhap vao so luong cac so nguyen duong le:");
	scanf("%d",&n);
	if(n<0)
	{
		printf("\nSo luong khong hop le!Xin vui long nhap lai!");
		goto quaylai;
	}
	INit(l);
	for(int i=1;i<=n;i++)
	{
		int x;
		do{
			printf("\nNhap vao so nguyen duong le thu %d:",i);
			scanf("%d",&x);
			if(x<0||x%2==0)
			{
				printf("\nSo ban nhap vao khong hop le!Xin vui long nhap lai!");
			}
		}while(x<0||x%2==0);
		NODE*p=getnode(x);
		AddTail(l,p);
	}
}

// Xuất dữ liệu danh sách liên kết đơn .
void OutPut(LIST l)
{
	printf("\n>>>>>>>>>>>>>>>>> Danh Sach Cac So Nguyen Duong Le <<<<<<<<<<<<<<<<<<\n");
	for(NODE*p=l.pHead;p!=NULL;p=p->pNext)
	{
		printf("%4d",p->Data);
	}
}

// Liệt kê và tính tổng tất cả các số chính phương có trong danh sách liên kết đơn .
void LietKeVaTinhTongCacSoChinhPhuong(LIST l)
{
	int tong=0;
	NODE*pNode;
	float sqrt(float x);
	printf("\nCac so chinh phuong co trong danh sach la:");
	for(pNode=l.pHead;pNode!=NULL;pNode=pNode->pNext)
	{
		float ketqua=sqrt(pNode->Data);
		if((float)ketqua==(int)ketqua)
		{
			printf("%4d",pNode->Data); // Liệt kê ra tất cả các số chính phương có trong danh sách .
			tong+=pNode->Data; // Tính tổng tất cả các số chính phương có trong danh sách .
		}
	}
	printf("\n");
	printf("\nTong cac so chinh phuong co trong danh sach la:%d",tong);
}

// Hàm chính .
void main()
{
	int tieptuc;
	LIST lst;
	quaylai:InPut(lst);
	printf("\n");
	OutPut(lst);
	printf("\n");
	LietKeVaTinhTongCacSoChinhPhuong(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;
	}
}


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


Create a new paste based on this one


Comments: