Ich mache jetzt ein Projekt mit C-Sprache und ich habe ein Problem in einem Teil auf Projekt.Basisch versuche ich, maximale M-Nummern in meinem Haupt-Array zu finden und ich nehme ihre ID-Nummern zu einem anderen Array. Die ID-Nummern dieser Max-Nummern sind ihre Position in Array.Maximale Anzahl im Array mit Zeigern finden und ihre Position zu einem anderen Array nehmen
Meine Haupt-Array ist tresh_arr und haben N-Nummern, die Zahlen sind doppelt.
Mein Code Block, der nicht der Fall funktioniert:
double max=0;
int *max_arr;
int k,tmp,flag=0;
max_arr=calloc(M,sizeof(int));
for(i=0;i<M;i++) //I will find maximum M numbers
{
for(j=0;j<N;j++) //There is a N numbers in my array
{
if(*(tresh_arr+j) > max ) //I'm trying to take the Id numbers to the tresh_arr
{
flag=0;
for(k=0;k<i+1;k++)
{
if(*(max_arr+k)==j)
{
flag=0;
break;
}
else
flag=1;
}
if(flag==1)
{
max = *(tresh_arr+j);
tmp=j;
}
}
}
*(max_arr+i)=tmp;
}`
Aber mein Code funktioniert nicht und die maximale Anzahl nur zu finden und M-mal die Id dieser maximalen number.What Schreiben soll ich tun? Danke und Entschuldigung für meine Fehler wenn.
Debugger ................. –
Was ist, wenn Sie das Array sortieren und das Maximum M nehmen? – Marievi