01/10/2018, 09:34

In ra giá trị lớn nhất trong mảng và vị trí của giá trị đó

Viết chương trình nhập 1 mảng n số nguyên, tìm giá trị lớn nhất trong mảng và in ra vị trị giá trị lớn nhất đó,
Em tìm được số max và min rồi cơ mà làm thế nào để in ra vị trí của giá trị lớn nhất trong mảng vậy ? Em mới học mảng có 1 ngày

int a[100],b[100];
int n,k;
float max,min;
cout<<"Nhap n so nguyen can nhap ";cin>>n;
cout<<"Nhap k=";cin>>k;

for(int i=0;i<n;i++)
{
	cout<<"a["<<i<<"]=";
	cin>>a[i];
}

max=a[0];
min=a[0];
for(int i=0;i<n;i++)
{
	if(max<a[i])
	{
		max=a[i];
	}
	if(min>a[i])
	{
		min=a[i];
	}
}
cout<<"So lon nhat trong mang la "<<max<<endl;
cout<<"So be nhat trong mang la "<<min<<endl;
Trần Hoàn viết 11:40 ngày 01/10/2018

ngoài biến max bạn còn thêm biến vitrimax vào

    if(max < a[i])
        {
            max = a[i];
            vitrimax = i;
        }
goneboy viết 11:49 ngày 01/10/2018

Em có thể theo các step sau:

  1. Nhập mảng

  2. Tìm phần tử lớn nhất của mảng

  3. Tìm vị trí của phần tử lớn nhất
    –> Em có thể hiện thực theo code của em hoặc tham khảo code của anh:

    void input_array(int *arr_out, int &arr_size_out);
    int find_max(int *arr_in, int arr_size_in);
    int find_max_position(int *arr_in, int arr_size_in, int max_in);

    int main(int argc, char *argv[])
    {
    int arr[32];
    int arr_size;
    int max_element;
    int max_pos;

     input_array(arr, arr_size);
     max_element = find_max(arr, arr_size);
     max_pos = find_max_position(arr, arr_size, max_element);
    
     system("pause");
     return 0;
    

    }

    //input the array
    void input_array(int *arr_out, int &arr_size_out)
    {
    printf(“Enter the array size: “);
    scanf(”%d”, &arr_size_out);

     for(int i = 0; i < arr_size_out; i++)
     {
     	printf("arr[%d] = ", i);
     	scanf("%d", &arr_out[i]);
     }
    
     return;
    

    }

    //find max element of array
    int find_max(int *arr_in, int arr_size_in)
    {
    int max;
    int arr_tmp[32];

     memcpy(arr_tmp, arr_in, arr_size_in * sizeof(int));
    
     for(int i = 0; i < arr_size_in - 1; i++)
     {
     	if(arr_tmp[i] >= arr_tmp[i + 1])
     	{
     		int tmp = arr_tmp[i];
     		arr_tmp[i] = arr_tmp[i + 1];
     		arr_tmp[i + 1] = tmp;
     		max = tmp;
     	}
     }
    
     return max;
    

    }

    //find position of max element
    int find_max_position(int *arr_in, int arr_size_in, int max_in)
    {
    int max_pos;

     for(int i = 0; i < arr_size_in; i++)
     {
     	if(max_in == arr_in[i])
     	{
     		max_pos = i;
     	}
     }
    
     return max_pos;
    

    }

Bài liên quan
0