Szukanie wartości najmniejszej w tablicy

0

Witam,
muszę napisać funkcję w C, która znajduje wartość najmniejszą i w tablicy zwraca numer indeksu.

#include<stdio.h>
#include<stdlib.h>

int SzukajMin(int T[], int n1, int n2);


int main(){
	int tab[8]={2,3,0,25,8,9,12,11};
	int n1=0, n2=7;
	int l,m;
	l=SzukajMin(tab,n1,n2);

	printf("Najmniejsza liczba pojawia sie pierwszy raz w indeksie: tab[%d]\n",l);

	
	return 0;
}

int SzukajMin(int T[], int n1, int n2){
	int a=n1;
	int k=T[n1];
	for(T[n1];n1<=n2;(n1)++)
	if(T[n1]<T[(n1)++]){
	a=n1;
	k=T[n1];
	}
	
	return a;
	}

Nie wiem dlaczego funkcja zwraca mi 0, proszę o pomoc.

0

Było dzisiaj coś niemal takiego samego.

Zadeklaruj int min = tab[0];
potem leć po całej tablicy i jak min < tab[x] to min = tab[x]
W twoim wypadku musisz zapamiętać x.

1
#include<stdio.h>
#include<stdlib.h>

int find_min(int array[], int low_idx, int high_idx)
{
  int min_val = array[low_idx];
  int min_idx = low_idx;
  
  for(int idx = ++low_idx; idx <= high_idx; idx++)
    if(array[idx] < min_val)
    {
      min_val = array[idx];
      min_idx = idx;
    }
    
  return min_idx;
}

int main(void)
{
    int array[8] = {2, 3, 0, 25, 8, 9, 12, 11};
    int min_idx = find_min(array, 0, 7);
 
    printf("Najmniejsza liczba: array[%d]\n", min_idx);
    return 0;
}

Powinno działać. Ewentualnie alternatywa:

int find_min(int array[], int size)
{
  int min_val = array[0];
  int min_idx = 0;
  
  for(int idx = 1; idx < size; idx++)
    if(array[idx] < min_val)
    {
      min_val = array[idx];
      min_idx = idx;
    }
    
  return min_idx;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1