[ create a new paste ] login | about

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

C, pasted on May 5:
/* Bài 163/62/SBT: Tìm số chính phương đầu tiên trong mảng một chiều các số nguyên */

/* Ý tưởng: Số chính phương là số mà khai căn ra là 1 số nguyên.vd:0,1,4,9,16,25,36...*/

/* Ở đây chương trình cho phép liệt kê ra tất cả các số chính phương có trong mảng và số lượng của chúng.Tìm ra số chính phương đầu tiên kèm theo vị trí của 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

*/
#include<stdio.h>
#include<conio.h>
#include<cmath>
#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 xulydulieu(int a[MAX],int n)
{
    int i,j,Co,dem=0,Co1,vitri=0,Co2;
    bool Co=false;
	bool Co1=false; //	=> nhất thiết phải đặt bool Co1=false & bool Co2=false thì bài toán mới chạy được do 2 biến bool lúc này đã được xác định.
	bool Co2=false;
	float sqrt(float (x)); // =>Ở C chuẩn (Code Block) thì không cần dòng khai báo này nhưng vì visual studio là C++ nên ta phải khai báo trước hàm sqrt và gán đại nó cho 1 biến bất kỳ.ví dụ:biến x.
	printf("\nCac so chinh phuong co trong mang la:");
    for(i=0;i<n;i++)
    {
        for(j=0;j<=a[i];j++)
        {            
			if(sqrt(a[i])==j)
            {
               printf("%4d",a[i]);
			   dem++;
			   Co=true;
                
            }
        }
    }
    if(Co==true)
    printf("\nTrong mang co %d so chinh phuong",dem);
    else
    printf("\nTrong mang khong co so chinh phuong nao ca");
	for(i=0;i<n;i++)
    {
        for(j=0;j<=a[i];j++)
        {
            if(sqrt(a[i])==j)
            {
			   Co1=true; //Ở đây vì trong cùng 1 hàm cho nên ta không thể dùng lại biến Co=true được mà ta phải dùng biến khác là Co1 và Co2 thì kết quả mới đúng được.
            }
        }
		if(Co1==true)
		{
			Co2=true;	//Ở đây vì trong cùng 1 hàm cho nên ta không thể dùng lại biến Co=true được mà ta phải dùng biến khác là Co1 và Co2 thì kết quả mới đúng được.
			vitri=i;
			break;
		}
    }
	if(Co2==true)
		printf("\nSo chinh phuong 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);
	xulydulieu(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
Line 17: error: conio.h: No such file or directory
Line 15: error: cmath: No such file or directory
Line 22: error: expected ';', ',' or ')' before '&' token
In function 'xuatmang':
Line 42: error: 'for' loop initial declaration used outside C99 mode
In function 'xulydulieu':
Line 52: error: 'false' undeclared (first use in this function)
Line 52: error: (Each undeclared identifier is reported only once
Line 52: error: for each function it appears in.)
Line 55: warning: conflicting types for built-in function 'sqrt'
Line 65: error: 'true' undeclared (first use in this function)
In function 'main':
Line 95: warning: return type of 'main' is not 'int'


Create a new paste based on this one


Comments: