两个double类型数组的问题

一个线上超市,销售8种水果:苹果3.5元一斤,桃子5元一斤,荔枝5.5一斤,香蕉4元一斤,橘子3元一斤,桔子4.5元一斤,梨子3元一斤,水蜜桃5.3元一斤。少于5斤的订单要加收6.5元的运输和包装费,5-20斤的订单要加收13元的运输和包装费,超过20斤的订单在加收13元的基础上要每斤加收.2元的运输和包装费。编写一个程序,提供一个菜单,给客户进行选择所购水果,可以进行多次选购。计算货物总价、运费和包装费。同时显示所有购买信息。

你题目的解答代码如下:

#include <stdio.h>
int main( )
{
    char s[][20] = {"苹果","桃子","荔枝","香蕉","橘子","桔子","梨子","水蜜桃"};
    double a[] = {3.5, 5, 5.5, 4, 3, 4.5, 3, 5.3};
    int i,j,n;
    double m,p,g=0,sum=0;
    int len=sizeof(a)/sizeof(a[0]);

    printf("***********菜单***************\n");
    for (i = 0; i < len; i++)
        printf("   编号%d %s %.2lf元一斤\n",i,s[i],a[i]);
    while (1)
    {
        printf("请输入选购水果的编号(输入-1结束):");
        scanf("%d",&n);
        if (n==-1)
            break;
        if (n<0 || n>=len){
            printf("输入编号错误!\n");
            continue;
        }
        printf("请输入斤数:");
        scanf("%lf",&m);
        if (m<0){
            printf("输入斤数错误!\n");
            continue;
        }
        sum+=a[n]*m;
        g+=m;
        printf("选购%s %.1lf斤,共%.2lf元\n",s[n],m,a[n]*m);
    }
    if(g<5)
        p = 6.5;
    else if(g>=5 && g<=20)
        p = 13;
    else if(g>20)
        p = 13+(g-20)*0.2;
    printf("选购%.1lf斤水果,货物总价%.2lf元, 运费和包装费%.2lf元, 共%.2lf元\n",g,sum,p,sum+p);
    return 0;
}

如有帮助,望采纳!谢谢!