[ create a new paste ] login | about

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

C, pasted on May 6:
/* Bài 17/66/SBT Trường CNTP:Viết chương trình nhập số nguyên lớn N (khai báo:long N) có k chữ số .
	- Tìm chữ số hàng đầu tiên của N.
	- Tính tổng các chữ số của N.
	- Tìm chữ số lớn nhất trong k chữ số đó.
	- Đếm số chữ số của N.
	- N có phải là số có các chữ số khác nhau đôi một không ?	. 630.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<Windows.h>
#define MAX 100

// Hàm nhập vào số nguyên lớn .
void NhapN(long &n)
{
	printf("\nNhap Vao So Nguyen : ");
	scanf("%ld",&n);
}

// Hàm xuất ra số nguyên .
void XuatN(long n)
{
	printf("So Ban Vua Nhap Vao La:%ld",n);
}

// Hàm trả về giá trị từng chữ số của số vừa nhập và được lưu vào trong mảng 1 chiều .
int XuLyDuLieu(int a[],long n)
{
	int i=0;
	while(n!=0)
	{
		a[i]=n%10;
		n=n/10;
		i++;
	}
	return i;
}

// Hàm liệt kê các chữ số .
void LietKeCacChuSo(int a[],long n)
{
	int s=XuLyDuLieu(a,n);
	printf("\nCac Chu So Cua So %ld La:",n);
	for(int k=s-1;k>=0;k--)
	{
		printf("%4d",a[k]);
	}
}

// Hàm tìm chữ số đầu tiên .
void ChuSoDauTien(int a[],long n)
{
	int s=XuLyDuLieu(a,n);
	printf("\nChu So Dau Tien Cua %ld La:%d",n,a[s-1]);
}

// Hàm tính tổng tất cả các chữ số .
void TongCacChuSo(int a[],long n)
{
	int s=XuLyDuLieu(a,n);
	int tong=0;
	for(int k=s-1;k>=0;k--)
	{
		tong+=a[k];
	}
	printf("\nTong Cac Chu So Cua So %ld La:%d",n,tong);
}

// Hàm tìm chữ số lớn nhất .
void ChuSoLonNhat(int a[],long n)
{
	int s=XuLyDuLieu(a,n);
	int max=a[0];
	for(int k=1;k<s;k++)
	{
		if(a[k]>max)
		{
			max=a[k];
		}
	}
	printf("\nChu So Lon Nhat Cua So %ld La:%d",n,max);
}

// Hàm đếm số lượng chữ số .
void DemSoChuSo(int a[],long n)
{
	int s=XuLyDuLieu(a,n);
	printf("\nSo Luong Cac Chu So Cua So %ld La:%d",n,s);
}

// Hàm hoán vị 2 số nguyên .
void HoanVi(int &x,int &y)
{
	int temp=x;
	x=y;
	y=temp;
}

// Hàm kiểm tra xem các chữ số có khác nhau đôi một hay không ?
/* Để kiểm tra được thì đầu tiên ta đi sắp xếp mảng chứa các chữ số của số vừa nhập tăng dần . Sau đó cho vòng lặp chạy từ k = 1 -> < s (giá trị truyền về của i) . Khởi tạo 1 biến đếm = 0.Đặt điều kiện nếu a[k]!=a[k-1] thì biến đếm tăng lên 1 đơn vị . Nếu biến đếm mà bằng đúng số lượng các chữ số trong mảng - 1 tức là đếm = s-1 => Các chữ số hoàn toàn khác nhau đôi một . Nếu đếm không bằng s-1 => Có tồn tại chữ số giống nhau . */
void KiemTraChuSoKhacNhauDoiMot(int a[],long n)
{
	int s=XuLyDuLieu(a,n);
	int dem=0;
	// Sắp mảng tăng dần bằng thuật toán Interchange Sort .
	for(int k=0;k<s;k++)
	{
		for(int l=k+1;l<s;l++)
		{
			if(a[k]>a[l])
			{
				HoanVi(a[k],a[l]);
			}
		}
	}
	// Đặt điều kiện .
	printf("\nSo %ld Co Cac Chu So Khac Nhau Doi Mot Hay Khong ? ",n);
	for(int k=1;k<s;k++)
	{
		if(a[k]!=a[k-1])
		{
			dem++;
		}
	}
	if(dem==s-1)
	{
		printf("\nYES");
	}
	else
	{
		printf("\nNO");
	}
}

// Hàm MeNu .
void MeNu()
{
	int a[MAX];
	long n,tieptuc;
	quaylai:NhapN(n);
	printf("\n");
	XuatN(n);
	printf("\n");
	LietKeCacChuSo(a,n);
	printf("\n");
	ChuSoDauTien(a,n);
	printf("\n");
	TongCacChuSo(a,n);
	printf("\n");
	ChuSoLonNhat(a,n);
	printf("\n");
	DemSoChuSo(a,n);
	printf("\n");
	KiemTraChuSoKhacNhauDoiMot(a,n);
	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;
	}
}

// Hàm chính .
void main()
{
	MeNu();
}


Output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Line 17: error: conio.h: No such file or directory
Line 19: error: Windows.h: No such file or directory
Line 24: error: expected ';', ',' or ')' before '&' token
In function 'LietKeCacChuSo':
Line 54: error: 'for' loop initial declaration used outside C99 mode
In function 'TongCacChuSo':
Line 72: error: 'for' loop initial declaration used outside C99 mode
In function 'ChuSoLonNhat':
Line 84: error: 'for' loop initial declaration used outside C99 mode
t.c: At top level:
Line 102: error: expected ';', ',' or ')' before '&' token
In function 'KiemTraChuSoKhacNhauDoiMot':
Line 116: error: 'for' loop initial declaration used outside C99 mode
Line 118: error: 'for' loop initial declaration used outside C99 mode
Line 128: error: redefinition of 'k'
Line 116: error: previous definition of 'k' was here
Line 128: error: 'for' loop initial declaration used outside C99 mode
In function 'main':
Line 177: warning: return type of 'main' is not 'int'


Create a new paste based on this one


Comments: