30/09/2018, 16:11

Chương trình sinh số ngẫu nhiên và tần suất xuất hiện nhiều nhất,nhỏ nhất

#include <iostream>
#include  <cstdlib>
using namespace std;

struct TanSuat{
	int giaTri;
	int soLuong;
};

//Ham sinh ngau nhien 1 so trong khoang 10.000 -> 1.000.000
int ngauNhien()
{//srand(time(NULL));
//x=rand()%(n-m+1)+m;
	return rand() % 990000 + 10000;
}
void inTanSuat(int *arr, int n)
{
	TanSuat *danhSach = new TanSuat[n];
	int index = 0;
	int found = 0;

	TanSuat tanSuatLonNhat;
	tanSuatLonNhat.giaTri = -1;
	tanSuatLonNhat.soLuong = -1;

	for (int i = 0; i<n; i++)
	{
		found = 0;
		for (int j = 0; j<index && !found; j++)
		{
			if (arr[i] == danhSach[j].giaTri)
			{
				danhSach[j].soLuong += 1;
				found = 1;
				//Cap nhat tan suat lon nhat
				if (danhSach[j].soLuong>tanSuatLonNhat.soLuong)
				{
					tanSuatLonNhat.giaTri = arr[i];
					tanSuatLonNhat.soLuong = danhSach[j].soLuong;
				}
			}
		}
		if (!found)
		{
			danhSach[index].giaTri = arr[i];
			danhSach[index].soLuong = 1;
			//Cap nhat tan suat lon nhat
			if (danhSach[index].soLuong>tanSuatLonNhat.soLuong)
			{
				tanSuatLonNhat.giaTri = arr[i];
				tanSuatLonNhat.soLuong = danhSach[index].soLuong;
			}
			index++;
		}
	}
	//--In tan suat
	cout << "So phan tu ngau nhien da duoc sinh ra:" << n << endl;
	//--In tan suat lon nhat
	cout << "So xuat hien nhieu nhat la: " << tanSuatLonNhat.giaTri << " voi so lan la: " << tanSuatLonNhat.soLuong << ", tan suat la: " << (tanSuatLonNhat.soLuong / (float)n) * 100 << endl;
	//--In tan suat cua tung so
	/*for(int j=0;j<index;j++)
	{
	cout<<danhSach[j].giaTri<<" xuat hien "<<danhSach[j].soLuong<<" lan, tan suat "<<(danhSach[j].soLuong/(float)n)*100<<"%"<<endl;
	}*/
}

int main()
{
	int n = 0;
	int *arr;

	cout << "Ban muon tao bao nhieu phan tu: ";
	cin >> n;
	arr = new int[n]; // Cap phat dong, 1 mang n phan tu

	//--Sinh ngau nhien
	for (int i = 0; i<n; i++)
	{
		arr[i] = ngauNhien();
	}

	inTanSuat(arr, n);
	system("pause");
	return 0;
}
Gió viết 18:17 ngày 30/09/2018

Cái đếm tần suất này bạn có thể dùng thư viện <map> sẽ đơn giản hơn!

Thực tế khắc nghiệt viết 18:17 ngày 30/09/2018

trc nay ko có xài nãy có bạn đề cập lên mới đụng vào tìm hiểu! chứ toàn chơi

srand(time(0));
int sordom=rand()% tuỳ;

ko có xài hàm mấy

Bài liên quan
0