C ,tablice

0

Mam problem z zadaniem

 #include<stdio.h>
#include<conio.h>

int maxx(int t[], int n)                       
{
	int i=0 ;
    int max = t[0];            
    for(int i = 1; i < n; i++)
            if(t[i] > max) max = t[i];
    
    return max;
}
int drug(int t[], int n) {

int j=0 ;                  

    int  drugi= t[0];            
    for(int j = 1; j < n; j++)
    if(t[j]==max) j+1;
            if(t[j] > drugi) drugi = t[j];
            
            return drugi;
            
            int main(void){
				const int n=5
				int an[]={5,3,22,43,11}
				
				
				if (drugi==max) printf("-1");
				else printf("%d",j);
	
	            getche ();
				return 0;			
				
				
            }
    

zadanie polega aby program zwrócił indeks drugiego największego elementu tablicy ,jesli nie ma takiego (wszystkie są równe) to -1,mam pytanie czy teraz mogę w jakiś sposób max użyć w drugiej funkcji ( w celu znalezenie drugiej najwiekszej liczby) i czy mogę wartość zmiennej j przekazać aby była odczytywywana jako numer indeksu ?

0

przecież to ci się nawet nie skompiluje

0

a co jeśli mamy coś takiego?
1, 2, 3, 5, 3, 2, 5 (czyli dwie piątki)
ma wyświetlić -1, 5 czy może 3, a może 1?

ogólnie pamiętaj że możesz wywołać max z przesuniętym wskaźnikiem na tablice (tylko trzeba odpowiednio napisać max tak by nie wychodził poza zakres tablicy

0

z tej tablicy wyzej wyswietliło by trójjke , minus jeden ma wysdwietlić tylko wtedy gdy wszystkie elementy są równe

0

nie widzę innego rozwiązania niż coś takiego

przeszukujesz tablice znajdujesz max. Zwracasz max (powiedzmy 5) Tutaj także sprawdzasz czy to nie są jednakowe elementy w tej tablicy
jeżeli max nie zwróci -1 to wywołujesz secondMax(tablica,liczbaMax)
w funkcji secondMax algorytm jest bardzo podobny do max, tylko że sprawdzasz czy dana liczba nie jest równa liczbaMax, jeżeli tak to nie wpisujesz tego do max (w pętli robisz continue po prostu)

-1 jest głupim pomysłem. A co jeśli tablica będzie mieć największą wartość własnie -1? Najlepiej użyć makra jakiegoś określającego MIN INT czy innego typu danych który będzie wykorzystywany

0

mam deja vu http://4programmers.net/Forum/Newbie/210007-druga_najwieksza_wartosc_w_tablicy
przyznawać się - gdzie dają takie zadanie?

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