Sinh ngẫu nhiên 50 số trong khoảng từ 0-100 và đếm số xuất hiện nhiều nhất trong C/C++?
0
0
Cộng đồng đã đăng:
Bạn có thể tham khảo cách phát sinh số ngẫu nhiên trong khoảng từ 0 đến 100.
Công việc còn lại là đếm xem trong mảng phần tử nào xuất hiện nhiều nhất thì phần tử đó chính là số may mắn.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void initRandomArray(int *A, int n, int k) {
srand(time(NULL));
int randNum = 0;
for (int i = 0; i < n; i++) {
randNum = rand() % k;
A[i] = randNum;
}
}
int findLuckyNumber(int *A, int n) {
int luckyNumber = -1;
int frequency = 0;
for (int i = 0; i < n; i++) {
int count = 1;
for (int j = 0; j < n; j++) {
if (A[i] == A[j]) {
count++;
}
}
if (count > frequency) {
frequency = count;
luckyNumber = A[i];
}
}
return luckyNumber;
}
int main() {
int *A;
int n = 50; /* Số lượng phần tử của mảng */
int k = 100; /* Mỗi phần tử có giá trị ngẫu nhiên nằm trong khoảng từ 0 đến k */
A = new int[n]; // Cấp phát bộ nhớ cho mảng A
initRandomArray(A, n, k);
int luckyNumber = findLuckyNumber(A, n);
/* Xuất mảng */
for (int i = 0; i < n; i++) {
printf("%4d", A[i]);
}
printf("\n");
// Xuất ra số may mắn
printf("So may man la %d\n", luckyNumber);
delete[]A; // Free vùng nhớ sau khi sử dụng
return 0;
}
thêm bình luận...
Bạn chưa đăng nhập, vui lòng đăng nhập để thêm câu trả lời.
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)