[ create a new paste ] login | about

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

C, pasted on May 6:
/* Đề Bài: Nhập vào 1 mảng A các số nguyên và tìm ra phần tử lớn thứ 3 trong mảng . 544.cpp */

/* Ý Tưởng :Nếu đề bài đã cho là tìm số lớn thứ 3 thì mảng phải có ít nhất 3 phần tử khác nhau trong mảng.Nếu không thỏa được điều kiện đó thì chương trình sẽ không tính và báo lỗi.Nếu thỏa điều kiện đó thì đi tính.Đầu tiên ta đi sắp xếp mảng tăng dần.Sau khi đã sắp xếp tăng dần thì ta tìm ra vị trí đầu tiên của phần tử lớn nhất trong mảng ký hiệu là vt1. Sau đó cho vòng lặp chạy từ 0 -> <vt1 => a[vt1-1] sẽ là số lớn thứ 2 và tiếp tục tìm ra vị trí xuất hiện đầu tiên của số lớn thứ 2 đó ký hiệu là vt2 . Cho tiếp vòng lặp chạy từ 0 -> < vt2 => a[vt2-1] chính là số lớn thứ 3 trong mảng . */
/* 

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<Windows.h>
#define MAX 100

void NhapMang(int a[],int &n)
{
	quaylai:printf("\nNhap vao so luong phan tu cua mang:n=");
	scanf("%d",&n);
	if(n<3||n>MAX)
	{
		printf("\nSo ban nhap vao khong hop le!Xin vui long nhap lai!");
		goto quaylai;
	}
	for(int i=0;i<n;i++)
	{
		printf("\nNhap vao a[%d]=",i);
		scanf("%d",&a[i]);
	}
}

void XuatMang(int a[],int n)
{
	for(int i=0;i<n;i++)
	{
		printf("%4d",a[i]);
	}
}

void HoanVi(int &x,int &y)
{
	int temp=x;
	x=y;
	y=temp;
}

void SapTangDan(int a[],int n)
{
	for(int i=0;i<n-1;i++)
	{
		for(int j=i+1;j<n;j++)
		{
			if(a[i]>a[j])
			{
				HoanVi(a[i],a[j]);
			}
		}
	}
}

void TimSoLonThuBa(int a[],int n)
{
	int vt1=0,vt2=0,max1,max2,max3,dem=0;
	for(int i=0;i<n;i++)
	{
		if(a[i]!=a[i+1])
		{
			dem++;
		}
	}
	if(dem>=3)
	{
		for(int i=0;i<n;i++)
		{
			max1=a[n-1];
			if(max1==a[i])
			{
				vt1=i;
				break;
			}
		}
		for(int i=0;i<vt1;i++)
		{
			max2=a[vt1-1];
			if(max2==a[i])
			{
				vt2=i;
				break;
			}
		}
		max3=a[vt2-1];
		printf("\nPhan tu lon thu 3 trong mang la:%d",max3);
	}
	else
		printf("\nMang nay khong ton tai it nhat 3 phan tu khac nhau nen khong the tinh duoc!");
}

void main()
{
	int a[MAX],n,tieptuc;
	quaylai:NhapMang(a,n);
	printf("\n>>>>>>>>>>>>Mang Vua Nhap Vao La:<<<<<<<<<<<<<<<<<<\n");
	XuatMang(a,n);
	printf("\n");
	SapTangDan(a,n);
	TimSoLonThuBa(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;
	}
}


Output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Line 17: error: conio.h: No such file or directory
Line 19: error: Windows.h: No such file or directory
Line 19: error: expected ';', ',' or ')' before '&' token
In function 'XuatMang':
Line 37: error: 'for' loop initial declaration used outside C99 mode
t.c: At top level:
Line 43: error: expected ';', ',' or ')' before '&' token
In function 'SapTangDan':
Line 52: error: 'for' loop initial declaration used outside C99 mode
Line 54: error: 'for' loop initial declaration used outside C99 mode
In function 'TimSoLonThuBa':
Line 67: error: 'for' loop initial declaration used outside C99 mode
Line 76: error: 'for' loop initial declaration used outside C99 mode
Line 85: error: redefinition of 'i'
Line 76: error: previous definition of 'i' was here
Line 85: error: 'for' loop initial declaration used outside C99 mode
In function 'main':
Line 102: warning: return type of 'main' is not 'int'


Create a new paste based on this one


Comments: