Thừa một vị trí của số nhỏ nhất trong mảng 1 chiều

image
Đề là tìm vị trí số nhỏ nhất trong mảng 1 chiều ạ.
Vấn đề của em là nó luôn thừa số 5 ạ.
Mọi người chỉnh code cho em với ạ. Em cảm ơn.

#include <iostream> 
using namespace std; 
void nhap (int a[100],int &sl) { 
    cout << "\n nhap so luong phan tu "; 
    cin >> sl; 
    for ( int i = 0; i < sl; i++) {
        cout << "\n a["<<i<<"]= "; 
        cin >> a[i]; 
    } 
} 

int vtduongnhonhat(int a[], int n)
{
    int min;
    int dem =0 ;
    for (int i=0; i<n; i++)
    {
        if(a[i]>0)
        {
            dem++;
            min = i;
        }
    }
    if (dem == 0) cout << -1;
 if (dem!=0) {
     for (int i = 0; i<n; i ++) { 
        if(a[i]>0&&a[min]>a[i])
        {
           a[min] = a[i];
        }
    }
 }
    return a[min]; 
}
    void xuat ( int a[100], int sl) { 
        for (int i = 0; i <= sl; i++) { 
          if (a[i] == vtduongnhonhat(a,sl)) {
          	cout << "\n vi tri nho nhat cua so do la: " << i+1; 
		  }
        }
    
} 
int main () { 
 int a[100], sl;
 nhap (a,sl); /
cout << "\n so nho nhat la " << vtduongnhonhat (a,sl);

 xuat (a,sl); 
 return 0; 
}

Thông nhất lại đề là tìm số nhỉ nhất hay lớn nhất ạ bạn. Đề thì ghi lớn nhất, code thì nhỏ nhất. Thống nhất lại giúp tụi mình ạ.

4 Likes

Biến min chưa khởi tạo giá trị.
Đề bài là tìm số nhỏ nhất hay là số dương nhỏ nhất cơ?

2 Likes

số dương nhỏ nhất ạ :smiley:

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