请问这个case5如何用冒泡来顺序排列成绩,ca se7怎么将数组化为0-59 60-69 70-79 80-89 90-100用柱状图表示(用星号个数长度作柱)

#include<stdio.h>
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
printf("1.显示所有成绩\t");
printf("2.求平均分\t");
printf("3.显示最高分\t");
printf("4.显示最低分\t");
printf("5.成绩顺序排列\t");
printf("6.中值\t");
printf("7.柱状图\t\n");

int a[25]={4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100};
int b;
int c;
int d=0;
int e;

scanf("%d",&b);

switch (b) {
case 1:
    {
        printf("显示所有成绩\n");
        for(int i=0;i<25;i++)
            printf("%d\n",a[i]);

        break;
    }
case 2:
    {
        for(c=0;c<25;c++)
        {
            d+=a[c];
            e=d/25;
        }
        printf("%d",e);
        break;
    }
case 3:
    {
        int max=a[0];
        int size1=sizeof(a)/sizeof(a[0]);
        int i=0;
        for(i=0;i<size1;i++)
        {
            if(max<a[i])
                max= a[i];
        }
        printf("max of a:%d\n",max);
        system("pause");
    }
    break;
case 4:
    {
     int min=a[0];
                int size2=sizeof(a)/sizeof(a[0]);
                int i=0;
                for(i=0;i<size2;i++)
                {
                    if(min>a[i])
                        min= a[i];
                }
                printf("min of a:%d\n",min);
                system("pause");
    }
    break;    
case 5:

double n;
    for(int i=0; i<n-1; i++){
        bool isSorted = true;
        for(int j=0; j<n-1-i; j++){
            if(a[j] > a[j+1]){
                isSorted = false;
                int temp = a[j];
                a[j] = a[j+1];
                a[j+1]=temp;
            }  
        }
        if(isSorted) break;
        puts("a[i]");
    }

    break;
case 6:
        
        break;    
case 7:
size_t s;
int t;
printf("%s%13s%17s\n","element","value","histogram");
for( s=0;s<25;s++){
printf("%7u%13d      ",s,a[s]);
for(t=1;t<=a[s];++t){
    printf("%c",'*');
    
}
puts("");
}
        break;        
default:
    printf("查无此项,请重新进行选择");
    return 0;
    break;
}

}