题解 | 支付宝消费打折

支付宝消费打折

https://www.nowcoder.com/practice/f8997c9b82714f058e12433a32614993

#include <stdio.h>

typedef struct
{
    int jiage;
    int zhekou;
    float shijia;
}po;

int compare(const void*a,const void*b)
{
    po* p1=*(po**)a;  
    po* p2=*(po**)b;
    if(p1->shijia > p2->shijia) return 1;
    if(p1->shijia < p2->shijia) return -1;
    return 0;
}

int main() {
    int n, money;
    scanf("%d %d",&n,&money);
    po* arr[n];
    
    for(int i=0;i<n;i++)
    {
        arr[i]=(po*)malloc(sizeof(po));
        scanf("%d",&(arr[i]->jiage));
    }
    char erjinzhi[n+1];
    scanf("%s",erjinzhi);
    for(int i=0;i<n;i++)
    {
        arr[i]->zhekou=erjinzhi[i] - '0';
        if(arr[i]->zhekou)
        {
            arr[i]->shijia=(0.95f)*arr[i]->jiage;
        }
        else 
        {
            arr[i]->shijia=(float)arr[i]->jiage;
        }
    }

    qsort(arr,n,sizeof(po*),compare);

    float total = 0.0f;
    int count = 0;
    for(int i = 0; i < n; i++)
    {
        if(total + arr[i]->shijia <= money) 
        {
            total += arr[i]->shijia;
            count++;
        }
        else
        {
            break;  
        }

        free(arr[i]);
    }   
    printf("%d",count);
    return 0;
}

全部评论

相关推荐

12-15 11:27
门头沟学院 Java
点赞 评论 收藏
分享
求个付费实习岗位:这种就是吃满时代红利又没啥技术水平,只能靠压力学生彰显优越感的老登,别太在意了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务