口罩发放(C语言实现)

Posted dream_aleaf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了口罩发放(C语言实现)相关的知识,希望对你有一定的参考价值。

为了抗击来势汹汹的 COVID19 新型冠状病毒,全国各地均启动了各项措施控制疫情发展,其中一个重要的环节是口罩的发放。

某市出于给市民发放口罩的需要,推出了一款小程序让市民填写信息,方便工作的开展。小程序收集了各种信息,包括市民的姓名、身份证、身体情况、提交时间等,但因为数据量太大,需要根据一定规则进行筛选和处理,请你编写程序,按照给定规则输出口罩的寄送名单。
可以AC的解答请参考天梯赛练习集 L2-034 口罩发放(25分)史前巨细,坑点满满
按照如下做法,只得到了19分,有测试点未通过。还没有想出来怎么解决这个问题。

#include <stdio.h>
#include <string.h>

typedef struct Person
    char name[11];
    char id[21];
    int status;
    char time[6];
    int cnt;
Person;

int main()
    int d, p, i, j, k, t, s, len_id, itmp;
    Person person[1000], total[30000], tmp;
    int scnt = 0, tcnt = 0, flag = 0;
    
    scanf("%d%d", &d, &p); //输入数据
    for (i=0; i<30000; i++)
        total[i].cnt = 0;
    
    for (i=0; i<d; i++)
        scanf("%d%d", &t, &s);
        scnt = 0;
//         for (j=0; j<t; j++)
//             person[j].cnt = 0;
//         
        for (j=0; j<t; j++) //输入申请人的信息
            scanf("%s %s %d %s", person[j].name, person[j].id, &person[j].status, person[j].time);
//            scanf("%d %s", &person[j].status, person[j].time);
            flag = 0;
            len_id = strlen(person[j].id);
            person[j].cnt = 0;
            if (len_id != 18)
                continue;
            
            for (k=0; k<tcnt; k++)
                /*printf("k = %d\\n", k);*/
                if (strcmp(person[j].id, total[k].id) == 0)
                    flag = 1;
                    person[j].cnt = total[k].cnt; 
                    /*printf("welcome boys and girls, cnt = %d\\n", person[j].cnt);*/
                    if (person[j].status == 1)
                        total[k].status = person[j].status;
                    
                    break;
                
            
            /*printf("flag = %d\\n", flag);*/
            if (flag==0 && len_id==18)
                total[tcnt] = person[j];
                tcnt++;
            
            /*if (flag == 1)
                printf("This has existed.\\n");
            */
        
        for (j=0; j<t-1; j++) //按照提交时间先后顺序排序
            for (k=j+1; k<t; k++)
                if (strcmp(person[j].time, person[k].time) > 0)
                    tmp = person[j];
                    person[j] = person[k];
                    person[k] = tmp;
                
            
        
        
        for (j=0; j<t; j++)
            len_id = strlen(person[j].id);
            if (len_id<18 || len_id>18)
                continue;
            
            /*printf("hey cnt = %d\\n", person[j].cnt);*/
            for (k=0; k<tcnt; k++)
                if (strcmp(person[j].id, total[k].id) == 0)
                    if (total[k].cnt > 0)
                        total[k].cnt++;
                        if (total[k].cnt == p+1)
                            total[k].cnt = 0;
                        
                        person[j].cnt = total[k].cnt;
                    
                
            
            if (person[j].cnt==0)
                scnt++;
                person[j].cnt++;
                if (scnt <= s)
                    printf("%s %s\\n", person[j].name, person[j].id);
                    for (k=0; k<tcnt; k++)
                        if (strcmp(person[j].id, total[k].id) == 0)
                            total[k].cnt = person[j].cnt;
                        
                    
                
            
        
        
//         printf("打印\\n");
//         for (j=0; j<t; j++)
//             printf("%s %s", person[j].name, person[j].id);
//             printf(" %d %s\\n", person[j].status, person[j].time);
//         
    
    
    /*printf("tcnt = %d\\n", tcnt);*/
    for (i=0; i<tcnt; i++)
        if (total[i].status == 1)
            printf("%s %s\\n", total[i].name, total[i].id);
        
    
    /*printf("tcnt = %d\\n", tcnt);
    for (i=0; i<tcnt; i++)
        printf("%s %s", total[i].name, total[i].id);
        printf(" %d %s\\n", total[i].status, total[i].time);
    */
    
    return 0;

C语言 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于

#include<stdio.h>
int main(void)

int a;
double b;
scanf("%d",&a);
if(10>=a)
b=0.1*a;
else

if(a<=20)
b=0.75*(a-10)+1;
else

if(a<=40)
b=0.05*(a-20)+1.75;
else

if(a<=60)
b=0.03*(a-40)+2.75;
else

if(a<=100)
b=0.015*(a-60)+3.35;
else
b=0.01*(b-100)+3.95;




printf("奖金可以得到%d\n",b);
return 0;


企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分
哪里错了?我调试出来程序不给b赋值

这道c语言的解是:
#include #include int main() long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",i); bonus1=*0.1;bonus2=bonus1+*0.75; bonus4=bonus2+*0.5; bonus6=bonus4+*0.3; bonus10=bonus6+*0.15; if(i<=) bonus=i*0.1; else if(i<=) bonus=bonus1+(i-)*0.075; else if(i<=) bonus=bonus2+(i-)*0.05; else if(i<=) bonus=bonus4+(i-)*0.03; else if(i<=) bonus=bonus6+(i-)*0.015; else bonus=bonus10+(i-)*0.01; printf("bonus=%d",bonus); system("pause"); return 0;
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSIC,作为C语言最初的标准。
拓展资料:
1.构成c语言的基本单位是什么:
构成c语言程序的基本单位是函数,一个函数由两部分组成,语言程序里面的2语言是特别难的一部分。因为c语言要了解函数,如果函数没有太多的了解,对于语言程序也是很难掌握的;
函数又包括了函数名、函数类型、函数属性、函数参数名和形式参数类型等等,除了要记住这些名词解释以外,还要记住函数的公式。在计算机运行当中,函数是一个重要的组成部分,有些学校还会专门开课讲解函数的相关理论知识。
2.c语言的作用:
c语言可以用来驱动程序、写系统服务、开发应用软件、生成声音信号、处理自然语言、设计大型游戏、开发网页等等;
单片机,由于C语言在位操作上的优越性,在单片机领域,C语言也一直独领风骚,虽然现在出现了一些用其他编程语言操作单片机的方法,但也都是用C语言封装过的,可以说核心还是C语言。操作系统,C语言最著名的应用领域就是操作系统了,目前所有的操作系统内核都是C语言写的,最著名的就是Unix和Linux了。

参考技术A C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。
应答时间:2021-01-05,最新业务变化请以平安银行官网公布为准。
[平安银行我知道]想要知道更多?快来看“平安银行我知道”吧~
https://b.pingan.com.cn/paim/iknow/index.html详情
    官方服务
      官方网站智能问答
参考技术B 最后一个else没有打if(a>100) 而且你的else和if前面最好不要有空格因为这样在我电脑上显示不出来不能识别

if(a<=20)
b=0.75*(a-10)+1;
else

而上面的b应该为=0.075*后面的
参考技术C 你的b是double型,所以用%lf输出,改成printf("奖金可以得到%lf\n",b); 就可以了本回答被提问者和网友采纳 参考技术D 把a的值全部乘10000,10万在c里面是100,000,另外double改为float或者%f改为%lf

以上是关于口罩发放(C语言实现)的主要内容,如果未能解决你的问题,请参考以下文章

用c语言实现下列要求

C语言九十八之实现企业发放的奖金根据利润提成。利润(I)低于或等于 10 万元时,奖金可提 10%;利润高 于 10 万元,低于 20 万元时,低于 10 万元的部分按 10%提成,高于 10 万元的

C语言 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于

基于C语言的银行家算法

一道C语言作业

C语言switch语句问题(初学)