このプログラムは、配列内の最大 3 つの数値を見つけるためのものです。
コードを実行すると、1 番目に高く、2 番目に高くなります。そして、2番目に高いものが3番目の数で繰り返されています
ロジックに欠けているものは何ですか?
#include<stdio.h>
#include<conio.h>
int main()
{
int i,k,n,m[20],h[3];
printf("\n enter the total number of students");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("enter the marks scored by student %d",i+1);
scanf("%d",&m[i]);
}//end for loop
k=0;
h[k]=m[0];
for(i=0;i<n;i++)
{
if(m[i]>h[k])
{
h[k]=m[i];
}
}//end for loop
do
{
//Probably messed my code here
k++;
h[k]=m[0];
for(i=0;i<n;i++)
{
if(m[i]>=h[k-1])
{
if(m[i]>h[k])
{
h[k]=m[i];
}//end if
break;
}//end if
}//end for loop
}//end do loop
while(k<3);
printf("the first 3 highest marks are:\n");
for(i=0;i<k;i++)
printf("%d:%d\n",i+1,h[i]);
getch();
}//end of main