ทำไม Code ช่วงสุดท้ายไม่เรียงจากมากไปน้อยให้ครับ นั่งหานานแล้ว งงมากครับ ช่วยผมหน่อยนะครับ

ขอบพระคุณพี่ๆทุกคนครับ
#include <stdio.h>
int main (void)
{
    // Local declarations
int size = 5 , i;
    float sum = 0, ave;
    int smallest, temp, current, walk, j=1, last=size - 1;
    int list[size];
    //Statements
printf("Enter score Student\n");
//Create and fill variable-length array
    float aray[size];
    //Fill array and calculate sum
for(i=0; i<size; i++)
        {
        printf("Student %d : ",i+1);
        scanf("%f", &aray[ i ]);
        sum += aray[ i ];
}
ave = sum / size;
    //Print average
    printf("\nAverange is : %.1f", ave);
    printf("\n\nStuden Who Score below average");
    for(i=0;i<size;i++)
    {
   if(aray<ave)
   {
   printf("\nStudent %d : %.1f", i+1, aray);
   }
    }
    printf("\n");
    for(current=0;current<last;current++)
    {
        smallest=current;
        for(walk=current+1;walk<=last;walk++)
   {
       if(aray[walk]>aray[smallest])
            smallest=walk;
            temp=aray[current];
            aray[current]=aray[smallest];
            aray[smallest]=temp;
            j++;
        }
        if(j == size)
   {
     printf("\nRating ranking from descanding order \n");
     for(i=0;i<size;i++)
       {
       printf("Score No.%d : %.1f\n", i+1, aray);
   }
   }
   return 0;
    }
}
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 1
[code]// Online C compiler to run C program online
#include <stdio.h>
int main (void)
{
    // Local declarations
int size = 5 , i;
    float sum = 0, ave;
    int smallest, temp, current, walk, j=1, last=size - 1;
    int list[size];
    float aray[size];
    //Statements
printf("Enter score Student\n");
//Create and fill variable-length array
    //Fill array and calculate sum
for(i=0; i<size; i++)
        {
        printf("Student %d : ",i+1);
        scanf("%f", &aray[ i ]);
        sum += aray[ i ];
}
ave = sum / size;
    //Print average
    printf("\nAverange is : %.1f", ave);
    printf("\n\nStuden Who Score below average");
    for(i=0;i<size;i++)
    {
   if(aray<ave)
   {
   printf("\nStudent %d : %.1f", i+1, aray);
   }
    }
    printf("\n");
    for(current=0;current<last;current++)
    {
        smallest=current;
        for(walk=current+1;walk<=last;walk++)
   {
       if(aray[walk]>aray[smallest])
            smallest=walk;
            temp=aray[current];
            aray[current]=aray[smallest];
            aray[smallest]=temp;
            j++;
        }
        if(j == size)
   {
   }
    }
     printf("\nRating ranking from descanding order \n");
     for(i=0;i<size;i++)
       {
       printf("Score No.%d : %.1f\n", i+1, aray);
   }
   return 0;
}
[/code]
ผลการทำงาน
/tmp/EzI8mLF9DW.o
Enter score Student
Student 1 : 10
Student 2 : 20
Student 3 : 30
Student 4 : 40
Student 5 : 50
Averange is : 30.0

Studen Who Score below average
Student 1 : 30.0
Student 2 : 30.0

Rating ranking from descanding order
Score No.1 : 50.0
Score No.2 : 40.0
Score No.3 : 30.0
Score No.4 : 20.0
Score No.5 : 10.0

ตัวแปร array[อ้างอินเด็กช์ด้วย];

ขอโทษที่ในพันทิป โพสต์  printf("Score No.%d : %.1f\n", i+1, aray[ i ]); ไม่ขึ้น
ศึกษาการเรียงบรรทัดคำสั่ง...หรือโฟลชาร์ตด้วย...ผลลัพธ์ ควรอยู่นอกลูปของการคำนวน
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่