Hi mọi người
, như tiêu đề, mình đang mắc lỗi ở bài tập tìm kiếm phần tử xuất hiện nhiều nhất/ít nhất trong mảng một chiều .
đây là code của của mình
#include <stdio.h>
#include <stdlib.h>
void nhap(int a[],int n)
{
for(int i=0;i<n;i++)
{
printf("Nhap a[%d]: ",i+1);
scanf("%d",&a[i]);
}
}
void search(int a[],int b[], int n)
{
for(int i=0;i<n;i++)
{
for(int j=i;j<n;j++)
{
if(a[j]==a[i])
b[i]++;
}
}
}
void xuat(int a[],int b[],int n)
{
int i;
int max=1,min=1;
for(int i = 0;i<n;i++)
{
if(b[i]>max)
{
max=b[i];
}
if(b[i]==max)
{
printf("\nphan tu %d xuat hien nhieu nhat, xuat hien %d lan",a[i],b[i]);
printf("\n\n");
}
}
for(int i = 0;i<n;i++)
{
if(b[i]<min)
{
min=b[i];
}
if(b[i]==min)
{
printf("\nphan tu %d xuat hien nhieu nhat, xuat hien %d lan",a[i],b[i]);
printf("\n\n");
}
}
}
int main()
{
int a[100],b[100]={0};
int n;
printf("Nhap N = \n");
scanf("%d",&n);
nhap(a,n);
search(a,b,n);
xuat(a,b,n);
return 0;
}
code thì vẫn chạy bình thường nhưng nó mắc một lỗi như thế này.
khi mà mình in kết quả ra màn hình thì nó lại in giá trị lớn nhất ra thêm một lần nữa.
ví dụ khi mình nhập vào a = {1,1,1,3,3,3,4,7
đây là kết quả khi chạy chương trình
không biết có cách nào khắc phục lỗi này không ạ mong mọi người giúp đỡ, xin cảm ơn





83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?