热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c语言清单,c语言清单工具

本文目录一览:1、列出程序清单(c语言程序设计)

本文目录一览:


  • 1、列出程序清单(c语言程序设计)


  • 2、C语言输出清单并统计总金额


  • 3、C语言 采用文件输出话费清单

列出程序清单(c语言程序设计)

#includestdio.h

main()

{

int a,b,k;

printf("请输入 a:\n");

scanf("%d",a);

printf("请输入 b:\n");

scanf("%d",b);

k=a;a=b;b=k;

printf("a=%d b=%d\n",a,b);

}

C语言输出清单并统计总金额

#includestdio.h

int main(){

int n,i,shul[100];

double dj[100],sum=0;

printf("输入书数\n");

scanf("%d",n);

for(i=0;in;i++){

printf("输入单价\n");

scanf("%lf",dj+i);

printf("输入数量\n");

scanf("%d",shul+i);

sum+=dj[i]*shul[i];}

for(i=0;in;i++)

printf("单价 %.3lf 数量 %d\n",dj[i],shul[i]);

printf("总价 %.3lf\n",sum);

return 0;}

C语言 采用文件输出话费清单

国际、国内、市话的电话号码识别,我没有写。

你想写,只要在我留的函数getcallType里写代码就行,其他不用改。参数:主叫号码 、 被叫号码。返回值:0或1或2,对应(国际、国内、市话)。

另外,输入我没有写验证,测试请规范输入,时间必须2位数hh:mm:ss,你想写验证证,自己添加到我的函数inputInfo中就行。

#includestdio.h

#includestdlib.h

#includemalloc.h

#define n 6//输入次数

typedef struct callInfo

{

    char calldate[11];//通话日期

    char callCode[15];//主叫码

    char beCallCode[15];//被叫码

    char beginTime[10];//起始时间

    char endTime[10];//通话结束时间

    long callTime;//通话时长,单位秒

    double callPay;//通话费用

    int callType;//国际长途:0,国内长途:1,市话:2

    struct callInfo *next;

}CALLINFO;

CALLINFO *inputInfo(int con);//输入,参数con:输入的次数  返回首节点

void prfCallInfo(CALLINFO *callInfoHead);//打印链表

long getTime(char *beginTime,char *endTime);//计算通话时长,返回秒数,时间格式:小时:分钟:秒

double getpay(long t,int callType);//计算费用,不足1分钟按1分钟算

int getcallType(char *callCode,char *beCallCode);//通过主叫号码 和 被叫号码,识别通话类别(国际、国内、市话),返回0或1或2。

void orderByPay(CALLINFO *callInfoHead);//排序 话费从高到低

void wirteFile(FILE *fp,CALLINFO *callInfoHead);

int main()

{

    CALLINFO *callInfoHead=NULL;

    FILE *fp=NULL;

    callInfoHead=(CALLINFO *)malloc(sizeof(CALLINFO));

    callInfoHead-next=NULL;

    fp=fopen("c:\\list2.txt","rt+");

    if(fp==NULL)

    {

        fp=fopen("c:\\list2.txt","w");

    }

    callInfoHead-next=inputInfo(n);

    printf("\n----测试代码所有费用默认按照市话计算----\n");

    orderByPay(callInfoHead);

    printf("\n----按照话费由高到低排序----\n");

    prfCallInfo(callInfoHead);

    printf("\n----开始写入文件----\n");

    wirteFile(fp,callInfoHead);

    return 0;

}

void wirteFile(FILE *fp,CALLINFO *callInfoHead)

{

    CALLINFO *callInfOnow=NULL;

    fseek(fp, 0, SEEK_SET);//文件流指针重置到开头

    fprintf(fp,"%s %s %s %s %s\n","日期","主叫号码","被叫号码","起始时间","通话时间");

    while(callInfoHead-next!=NULL)

    {

        callInfOnow=callInfoHead-next;

        fprintf(fp,"%s %s %s %s %s\n",callInfoNow-calldate,callInfoNow-callCode,callInfoNow-beCallCode,callInfoNow-beginTime,callInfoNow-endTime);

        callInfoHead=callInfoHead-next;

    }

}

void orderByPay(CALLINFO *callInfoHead)//排序 话费从高到低

{

        CALLINFO *callInfOnext=NULL,*callInfOnow=NULL,callInfoSave;

        while(callInfoHead-next!=NULL)

        {

            callInfOnext=callInfoHead-next-next;

            callInfOnow=callInfoHead-next;

            while(callInfoNext!=NULL)

            {

                if(callInfoNow-callPaycallInfoNext-callPay)//高的往前移动,交换成员值保留链表指针

                {

                    callInfoSave=*callInfoNow;

                    *callInfOnow=*callInfoNext;

                    *callInfOnext=callInfoSave;

                    callInfoNext-next=callInfoNow-next;

                    callInfoNow-next=callInfoSave.next;

                }

                callInfOnext=callInfoNext-next;

            }

            callInfoHead=callInfoHead-next;

        }

}

void prfCallInfo(CALLINFO *callInfoHead)//打印链表

{

    CALLINFO *callInfOnow=NULL;

    printf("\n通话日期  主叫码  被叫码  起始时间  通话结束时间  通话时长  通话费用\n");

    while(callInfoHead-next!=NULL)

    {

        callInfOnow=callInfoHead-next;

        printf("%s  %s  %s  %s  %s  %ld  %lf\n",callInfoNow-calldate,callInfoNow-callCode,callInfoNow-beCallCode,callInfoNow-beginTime,callInfoNow-endTime,callInfoNow-callTime,callInfoNow-callPay);

        callInfoHead=callInfoHead-next;

    }

}

CALLINFO *inputInfo(int con)//输入,参数con:输入的次数  返回首节点

{

    int i;

    CALLINFO *callInfo0=NULL,*callInfoTail=NULL,*callInfOnew=NULL;

    printf("请分别录入%d条通话记录,每行1条\n格式:(通话日期、主叫码、被叫码、起始时间、通话时间)\n",con);

    for(i=0;icon;i++)

    {

        callInfOnew=(CALLINFO *)malloc(sizeof(CALLINFO));

        scanf("%s%s%s%s%s",callInfoNew-calldate,callInfoNew-callCode,callInfoNew-beCallCode,callInfoNew-beginTime,callInfoNew-endTime); //输入我没有写验证,想写验证添加在这

    callInfoNew-callTime=getTime(callInfoNew-beginTime,callInfoNew-endTime);//时间

        callInfoNew-callType=getcallType(callInfoNew-callCode,callInfoNew-beCallCode);

        callInfoNew-callPay=getpay(callInfoNew-callTime,callInfoNew-callType);//费用

        callInfoNew-next=NULL;

        if(callInfo0==NULL)

            callInfo0=callInfoNew;

        else

            callInfoTail-next=callInfoNew;

        callInfoTail=callInfoNew;

    }

    return callInfo0;

}

long getTime(char *beginTime,char *endTime)//计算通话时长,返回秒数,时间格式24制:小时:分钟:秒

{

    int h1,m1,s1,h2,m2,s2;

    long t;

    h1=(beginTime[0]-'0')*10+beginTime[1]-'0';

    m1=(beginTime[3]-'0')*10+beginTime[4]-'0';

    s1=(beginTime[6]-'0')*10+beginTime[7]-'0';

    h2=(endTime[0]-'0')*10+endTime[1]-'0';

    m2=(endTime[3]-'0')*10+endTime[4]-'0';

    s2=(endTime[6]-'0')*10+endTime[7]-'0';

    t=(h2-h1)*60*60+(m2-m1)*60+(s2-s1);

    return t;

}

int getcallType(char *callCode,char *beCallCode)//通过主叫号码 和 被叫号码,识别通话类别(国际、国内、市话),返回0或1或2。

{

    //我没写,你需要自己写,测试代码默认返回类别2,市话

    return 2;

}

double getpay(long t,int callType)//计算费用,不足1分钟按1分钟算

{

    //(1) 国际长途1.00元/分钟,(2) 国内长途0.60元/分钟,(3) 市话前3分钟0.20元,3分钟以后0.10元/分钟。

    double callpay;

    if(t%60!=0)

        t=t/60+1;

    else

        t=t/60;

    if(callType==0)

        callpay=t*1;

    if(callType==1)

        callpay=t*0.6;

    if(callType==2)

    {

        if(t=3)

            callpay=t*0.2;

        else

            callpay=3*0.2+(t-3)*0.1;

    }

    return callpay;

}


推荐阅读
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • c语言\n不换行,c语言printf不换行
    本文目录一览:1、C语言不换行输入2、c语言的 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文介绍了为什么要使用多进程处理TCP服务端,多进程的好处包括可靠性高和处理大量数据时速度快。然而,多进程不能共享进程空间,因此有一些变量不能共享。文章还提供了使用多进程实现TCP服务端的代码,并对代码进行了详细注释。 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • 李逍遥寻找仙药的迷阵之旅
    本文讲述了少年李逍遥为了救治婶婶的病情,前往仙灵岛寻找仙药的故事。他需要穿越一个由M×N个方格组成的迷阵,有些方格内有怪物,有些方格是安全的。李逍遥需要避开有怪物的方格,并经过最少的方格,找到仙药。在寻找的过程中,他还会遇到神秘人物。本文提供了一个迷阵样例及李逍遥找到仙药的路线。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
author-avatar
人生-顺势而为
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有