Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Please I want to get the second and the third lowest grade in this C program . _

ID: 3696130 • Letter: P

Question

Please I want to get the second and the third lowest grade in this C program .

_________________________________________________________________________________

#include <stdio.h>
#define m 9
#define n 9
double avg(int a[], int b[]);
void find(int a[],int b[]);
void above(int a[], int b[] , double avg);
int highest(int b[]);
int lowest(int b[]);
int second_highest(int b[]);
int third_highest(int b[]);
int second_lowest(int b[]);
int third_lowes(int b[]);

int main (void)
{
  
   int arr_id[m] , big , arr_grades[n], v , u , w , l , s , t , i;
   double ans;
  
   printf("The students ID and thier grades :-");
  
   for (i = 0 ; i < m ;i++)
   scanf("%d%d", &arr_id[i] , &arr_grades[i]);
  
   ans = avg(arr_id,arr_grades);
  
   printf(" the avrage = %.2f",ans);
  
   for (i = 0 ; i < m ; i++)
   find(arr_id,arr_grades);
  
  
   above(arr_id,arr_grades,ans);
  
   u = highest(arr_grades);
  
   printf(" The frist highest = %d",u);
  
   v = second_highest(arr_grades);
          
   printf(" The second highest = %d",v);
  
   l = third_highest(arr_grades);

   printf(" The third highest = %d",l);
  
   s = second_lowest(arr_grades);

   printf(" The second lowest = %d",s);
  
   t =   third_lowes(arr_grades);
  
   printf(" The third lowest = %d",t);
      
   printf(" The highest = %d",u);
      
       w = lowest(arr_grades);
       printf(" The lowest = %d",w);
  
   return 0;
}

double avg(int a[],int b[]){
   int i,score=0;;
   double avgrage;
  
   for(i = 0 ; i < m ; i++)
   printf(" ID = %d Grade = %d", a[i] , b[i]);
  
   for(i = 0; i < m ; i++)
   score += b[i];
  
   avgrage = score / m;
  
  
   return (avgrage);
}

void find(int a[],int b[]){
  
   int ID , i;
  
   printf(" Enter The ID to get the grade :");
  
   for(i = 0 ; i < m ; i++){
  
   scanf("%d",&ID);
  
   for(i = 0 ; i < m ; i++){
       if(a[i] == ID)
       printf("the grade is : %d",b[i]);
   }
}
  
  
  
}

void above( int a[] ,int b[] , double avg){
  
   int i ;
  
   printf(" the grades above avrage = ");
   for(i = 0; i < m ; i++ ){
           if( b[i] > avg)
           printf("grade = %d ID =%d ",b[i],a[i]);
       }
}

int highest(int b[]){
  
   int big , i;
       big = b[0];
       for(i=1;i<m;i++){   
      
       if(big < b[i])
       big=b[i];
   }
  
   return (big);
  
}
int lowest(int b[]){
  
   int small , i;
       small = b[0];
       for(i=1;i<m;i++){   
      
       if(small > b[i])
       small=b[i];
   }
   return (small);
}
int second_highest(int b[])//the second highest grade
{
int u = highest(b);
int sec , i;
sec = b[0];
for(i=1;i<m;i++){   
  
if(sec < b[i] && u > b[i])
sec=b[i];
}
  
return (sec);
}
int third_highest(int b[])//the third highest grade
{
int thr,u,v,i;
u = highest(b);
v = second_highest(b);

  
thr = b[0];
for(i=1;i<m;i++){   
  
if(thr < b[i] && u>b[i] && v>b[i])
thr=b[i];
}
  
return thr;
}

Explanation / Answer

#include <stdio.h>
#define m 4
#define n 4
double avg(int a[], int b[]);
void find(int a[],int b[]);
void above(int a[], int b[] , double avg);
int highest(int b[]);
int lowest(int b[]);
int second_highest(int b[]);
int third_highest(int b[]);
int second_lowest(int b[]);
int third_lowes(int b[]);
int main (void)
{

int arr_id[m] , big , arr_grades[n], v , u , w , l , s , t , i;
double ans;

printf("The students ID and thier grades :-");

for (i = 0 ; i < m ;i++)
scanf("%d%d", &arr_id[i] , &arr_grades[i]);

ans = avg(arr_id,arr_grades);

printf(" the avrage = %.2f",ans);

for (i = 0 ; i < m ; i++)
find(arr_id,arr_grades);


above(arr_id,arr_grades,ans);

u = highest(arr_grades);

printf(" The frist highest = %d",u);

v = second_highest(arr_grades);

printf(" The second highest = %d",v);

l = third_highest(arr_grades);
printf(" The third highest = %d",l);

s = second_lowest(arr_grades);
printf(" The second lowest = %d",s);

t = third_lowes(arr_grades);

printf(" The third lowest = %d",t);

printf(" The highest = %d",u);

w = lowest(arr_grades);
printf(" The lowest = %d",w);

return 0;
}
double avg(int a[],int b[]){
int i,score=0;;
double avgrage;

for(i = 0 ; i < m ; i++)
printf(" ID = %d Grade = %d", a[i] , b[i]);

for(i = 0; i < m ; i++)
score += b[i];

avgrage = score / m;


return (avgrage);
}
void find(int a[],int b[]){

int ID , i;

printf(" Enter The ID to get the grade :");

for(i = 0 ; i < m ; i++){

scanf("%d",&ID);

for(i = 0 ; i < m ; i++){
if(a[i] == ID)
printf("the grade is : %d",b[i]);
}
}

}
void above( int a[] ,int b[] , double avg){

int i ;

printf(" the grades above avrage = ");
for(i = 0; i < m ; i++ ){
if( b[i] > avg)
printf("grade = %d ID =%d ",b[i],a[i]);
}
}
int highest(int b[]){

int big , i;
big = b[0];
for(i=1;i<m;i++){

if(big < b[i])
big=b[i];
}

return (big);

}
int lowest(int b[]){

int small , i;
small = b[0];
for(i=1;i<m;i++){

if(small > b[i])
small=b[i];
}
return (small);
}
int second_highest(int b[])//the second highest grade
{
int u = highest(b);
int sec , i;
sec = b[0];
for(i=1;i<m;i++){

if(sec < b[i] && u > b[i])
sec=b[i];
}

return (sec);
}
int third_highest(int b[])//the third highest grade
{
int thr,u,v,i;
u = highest(b);
v = second_highest(b);


thr = b[0];
for(i=1;i<m;i++){

if(thr < b[i] && u>b[i] && v>b[i])
thr=b[i];
}

return thr;
}
int second_lowest(int b[])
{
int small,ssmall , i,k;
small = b[0];
for(i=1;i<m;i++){
if(small > b[i]){
small=b[i];
}
}
for(k=0;k<m;k++)
if(b[k]==small)
b[k]=999;
//b[k]=999;
ssmall=b[0];
for(i=1;i<m;i++){
if(ssmall > b[i]){
ssmall=b[i];
}
}

//printf("second small = %d",ssmall);
return (ssmall);
}
int third_lowes(int b[])
{
int small,ssmall,tsmall , i,k;

ssmall=b[0];
for(i=1;i<m;i++){
if(ssmall > b[i]){
ssmall=b[i];
}
}
for(k=0;k<m;k++)
if(b[k]==ssmall)
b[k]=999;
tsmall=b[0];
for(i=1;i<m;i++){
if(tsmall > b[i]){
tsmall=b[i];
}
}
printf(" array elements ");
for(i=1;i<m;i++)
printf("%d ",b[i]);
//printf("second small = %d",ssmall);
return (tsmall);
}