[ create a new paste ] login | about

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

C, pasted on May 5:
/* Bài 145/59/SBT Thầy NTTMK:Tìm "số hoàn thiện đầu tiên" trong mảng một chiều các số nguyên.Nếu mảng không có số hoàn thiện thì trả về giá trị -1. 122.cpp */

/* Ở đây chương trình còn cho phép liệt kê ra tất cả các số hoàn thiện có trong mảng và số lượng của chúng,liệt kê ra số hoàn thiện đầu tiên và vị trí của nó. */

/* LƯU Ý:Ở bài này ta nên để ra 2 vòng lặp for.Vòng lặp đầu tiên là để liệt kê ra tất cả các số hoàn thiện có trong mảng và đếm số lượng của chúng.Vòng lặp thứ hai là để ta xác định số hoàn thiện đầu tiên và vị trí của nó,khi ở vòng lặp 2 gán lệnh break nếu gặp số hoàn thiện đầu tiên sẽ thoát ra vòng lặp nhưng vì nó đang ở trong vòng lặp for của k cho nên ta phải gán = 1 biến bool để đưa nó thoát ra vòng lặp k trở về vòng lặp i lúc đó mới break ra được.*/
/* 

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

*/
#include<stdio.h>
#include<conio.h>
#define MAX 100
#define bool
void nhapmang(int a[MAX],int &n)
{
	do{
	printf("Nhap vao so phan tu cua mang:n=");
	scanf("%d",&n);
	if(n<1||n>MAX)
	printf("So ban nhap vao khong hop le!Xin ban vui long nhap lai!\n");
	else
	break;
	}while(n<1||n>MAX);
	for(int i=0;i<n;i++)
	{
		printf("Nhap vao a[%d]=",i);
		scanf("%d",&a[i]);
	}
}

void xuatmang(int a[MAX],int n)
{
	printf("\n>>>>>>>>>>>>>>>MANG VUA NHAP LA:<<<<<<<<<<<<<<<<<\n");
	for(int i=0;i<n;i++)
	{
		printf("%4d",a[i]);
	}
	printf("\n");
}

void lietketatcasohoanthien(int a[MAX],int n)
{
	int Co,dem=0,i;
	bool Co=false;
	printf("Trong mang co cac so hoan thien la:");
	for(i=0;i<n;i++)
	{
		int tong=0; // tong=0 phải để ở trong vòng lặp thì mới hiển thị ra được kết quả.
		for(int k=1;k<a[i];k++)
		{
			if(a[i]%k==0)
			{
				tong+=k;
				if(tong==a[i])
				{
					printf("%4d",a[i]);
					dem++;
					Co=true;
				}
			}
		}
	}
	if(Co==true)
	printf("\nCo %d so hoan thien trong mang",dem);
	else
	printf("\n-1");
}





void sohoanthiendautien(int a[MAX],int n)
{
	int Co,Co1,i,vitri=0;
	bool Co=false;
	bool Co1=false;
	for(i=0;i<n;i++)
	{
		int tong=0; // tong=0 phải để ở trong vòng lặp thì mới hiển thị ra được kết quả.
		for(int k=1;k<a[i];k++)
		{
			if(a[i]%k==0)
			{
				tong+=k;
				if(tong==a[i])
					Co1=true;
			}
		}
		if(Co1==true)
		{
			Co=true;
			vitri=i;
			break;
		}
	}
	if(Co==true)
	printf("\nSo hoan thien dau tien la:%d tai vi tri:%d",a[i],vitri);
}
void main()
{
	int a[MAX],n,NAMSON;
	quaylai:nhapmang(a,n);
	xuatmang(a,n);
	lietketatcasohoanthien(a,n);
	sohoanthiendautien(a,n);
	printf("\nBan co muon tiep tuc chay chuong trinh khong ? Neu co bam phim C,nguoc lai bam bat ky phim nao khac de ket thuc\n");
	NAMSON=getch();
	if(NAMSON=='c'||NAMSON=='C')
		goto quaylai;
}


Output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Line 17: error: conio.h: No such file or directory
Line 20: error: expected ';', ',' or ')' before '&' token
In function 'xuatmang':
Line 40: error: 'for' loop initial declaration used outside C99 mode
In function 'lietketatcasohoanthien':
Line 50: error: 'false' undeclared (first use in this function)
Line 50: error: (Each undeclared identifier is reported only once
Line 50: error: for each function it appears in.)
Line 55: error: 'for' loop initial declaration used outside C99 mode
Line 64: error: 'true' undeclared (first use in this function)
In function 'sohoanthiendautien':
Line 82: error: 'false' undeclared (first use in this function)
Line 87: error: 'for' loop initial declaration used outside C99 mode
Line 93: error: 'true' undeclared (first use in this function)
In function 'main':
Line 107: warning: return type of 'main' is not 'int'


Create a new paste based on this one


Comments: