c语言

阅读 / 问答 / 标签

C语言strcmp函数是什么样的代码

C语言中strcmp函数是string库的常用函数。其原型代码和介绍如下:1.先说一下这个函数的实现原理,向strcmp()函数中传入两个字符串(记为str1,str2).传入之后,通过把str1的各字母的ASCII码值和str2的各字母的ASCII码值进行比较。若str1>str2则返回正数,若str1=str2则返回0,否则,则返回负数。2.下面实现代码:3.整个函数的原型中得益于“(*str1!="")&&(*str1==*str2)”这一句的代码,因为这样当字符指针指向空,意味着字符串已经移动到最后了,比较结束,此时可以退出循环。而如果两个字符串不相等时,则此时函数也可以退出了。扩展资料:这个函数要注意一下几点:①使用*(unsigned char*)str1而不是用*str1。这是因为传入的参数为有符号数,有符号字符值的范围是-128~127,无符号字符值的范围是0~255,而字符串的ASCII没有负值,若不转化为无符号数这回在减法实现时出现错误。②While循环中ret=*(unsigned char*)str1-*(unsigned char*)str2) && *str1,最后与上str1也可以换成str2,因为前面已经做了相减,无论哪个先为‘"都会退出。因为最后与上str1是为了判断str1是否结束,即是否为‘"。③这个函数没有判断参数为NULL时的情况,所以当传入NULL时程序会崩溃。网上看别人说商业化代码都会在调用strcmp前先判断是否为NULL,所以可以不用判断NULL;我在VC6上测试string.h中的strcmp(NULL,NULL),程序也会崩溃。这里可以根据实际情况来决定。参考资料来源:百度百科-strcmp函数

C语言笔试 strcmp

因为前2个字符都相等,而"x"-"s">0,所以,比较结束,所以,答案C是正确的。

c语言strcmp函数?

strcmp是字符串比较函数,调用形式为strcmp(字符串1,字符串2);功能:字符串1与字符串2比较,如果字符串1==字符串2,则函数值为0,1大于2,则为正整数,1小于2,则为负整数;从两个字符串的第一个字符开始逐个进行比较(按照ascii码的大小进行比较),之道出现不同的字符或遇到“”为止。例如:char*str1=hello,*str2=void;则strcmp(str1,str2)<0;因为‘h"<"v";

c语言中strcmp是什么意思

字符串比较。根据查询计算机编程得知,strcmp是string,compare的缩写,用于比较两个字符串并根据比较结果返回整数。简称字符串比较。C语言是一门面向过程的,抽象化的通用程序设计语言,广泛应用于底层开发,C语言能以简易的方式编译,处理低级存储器。

c语言中strcmp的用法

把字符看成ASII的值 , 和数字比较大小一般, if( strcmp(A,B) > 0 ) 串A > 串B if( strcmp(A,B) == 0 ) 相同的串 if(strcmp(A,B) < 0 ) 串A < 串B

C语言中的strcmp函数有什么作用,它的格式是怎样的?

一般格式为strcmp(str1,str2)作用将数组1接在数组后2面,以数组1为数组名保存.

c语言课程设计的学习方法与技巧

1.大学生活丰富多彩,会令你一生都难忘,但难忘有很多种,你可以学了很多东西而难忘,也会因为什么都没学到而难忘!2.计算机专业是一个很枯燥的专业,但即来之、则安之,只要你努力学,也会发现其中的乐趣的。3.记住:万丈高楼平地起!基础很重要,尤其是专业基础课,只有打好基础才能学得更深。4.C语言是基础,很重要,如果你不学好C语言,那么什么高级语言你都学不好。5.C语言与C++语言是两回事。就像大熊猫和小熊猫一样,只是名字很像。6.请先学习专业课《数据结构》、《计算机组成原理》,不要刚开始就拿着一本VC在看,你连面向对象都搞不清楚,看VC没有任何用处。7.对编程有一定的认识后,就可以学习C++了。(是C++而不是VC,这两个也是两码事。C++是一门语言,而VC教程则是讲解如何使用MFC类库,学习VC应建立在充分了解C++的基础之上。看VC的书,是学不了C++语言的。)8.学习编程的秘诀是:编程,编程,再编程;9.认真学习每一门专业课,那是你今后的饭碗。10.在学校的实验室就算你做错一万次程序都不会有人骂你,如果在公司你试试看!所以多去实验室上机,做得多了,毕业后就错得少了11.从现在开始,在写程序时就要养成良好的习惯。12.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路。13.你会买好多参考书,那么请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码。14. V C、C #、.NET这些东西都会过时,不会过时的是数据结构和优秀的算法! 15.记住:书到用时方恨少。不要让这种事发生在你身上,在学校你有充足的时间和条件读书,多读书,如果有条件多读原版书,你要知道,当一个翻译者翻译一本书时,他会不知不觉把他的理念写进书中,那本书就会变得像鸡肋!16.我还是强调认真听专业课,因为有些课像《数据结构》、《编译原理》、《操作系统》等等,这种课老师讲一分钟能让你明白的内容,你自己看要看好几个月,有的甚至看了好几年都看不明白。17.抓住在学校里的各种实践的机会,要为自己积累经验,就业时经验比什么都有用。18.多去图书馆,每个学校的图书馆都有很多好书等你去看!19.编程不是技术活,而是体力活。20.如果你决定了要当一个好的程序员,那么请你放弃游戏,除非你是那种每天只要玩游戏就能写出好程序的天才!21.你要有足够的韧性和毅力!有个高手出一一道题测试你的韧性和毅力:找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。22.找到只属于你自己的学习方法。不要盲目的追随别人的方法,适合自己的才是最好的!

c语言指令有哪些啊

这个不好说啊

怎样把mtk下的scat.txt文件变成C语言

mtk下载工具主要使用FlashTool_V2.9.1001,主要用于将编译生成的bin文件写入目标手机中,改工具不用安装,直接运行,主要用法如下:1 运行Flash_tool.exe 打开软件,2 点击Download Agent 载入MTK_AllInOne_DA.bin 这个文件3 点击Scatter_Loading 载入scat.txt 这个文件4 双击ROM 将项目目录下build文件夹下的bin文件加载进来5 插上手机的下载线,点击option,选择手机的rate速率,和相应的com口点击DownLoad,然后轻轻按下手机的开机键,就可以下载选择的bin文件到目标手机中网上搜的

c语言编写一个函数,求两数中的最小数。在主函数中输入两个数,调用函数求出最小数,再求最小数的平方根

c语言编写一个函数,求两数中的最小数。在主函数中输入两个数,调用函数求出最小数,再求最小数的平方根#include #include int min(int a, int b); //声明函数min,求两个整数的最小值 int main() { int x, y; //定义变量x、y存储输入的两个整数 printf("请输入两个正整数:"); //提示用户输入信息 scanf("%d %d",

TMS320F2812原理及其C语言程序开发的二、内容简介

《TMS320F2812原理及其C语言程序开发》共分12章。第1章为处理器的功能以及开发环境CCS的介绍,用简单易懂的实例引领读者入门。第2章为结合工程开发的C语言基础介绍,重点是培养读者C语言开发的基本能力。第3章为TMS320F2812外设的C语言程序开发,重点介绍外设的C语言构成,使读者对TMS320F2812的外设编程有一个清楚的认识。第4~10章为TMS320F2812的外设介绍,重点介绍外设工作原理、寄存器位信息及功能,并且根据不同的外设提供详细的C语言程序开发,可以使读者对外设充分理解。第12章为以TMS320F2812为处理器的电气平台开发介绍,重点介绍以处理器为核心的各模块硬件设计、软件开发,更好地提升读者的开发能力。附录中还介绍μC/OS-Ⅱ操作系统在TMS320F2812上移植及实时多任务管理。《TMS320F2812原理及其C语言程序开发》适合学习DSP TMS320F2812的初级、中级用户及有一定基础的DSP设计开发人员,是DSP方面软件和硬件工程师必备的工具书,也可以作为TMS320F2812 DSP爱好者的自学教材。此外,《TMS320F2812原理及其C语言程序开发》还可以作为高等院校相关专业的参考教材。-------------------------------------------------------------------------------- 以F2812为核心的电气平台的开发与设计丰富的C语言程序开发实例C语言的编程基础和编程规范详细介绍F2812的外设原理和编程技巧F2812的Boot ROM相关内容及多种启动方式介绍ADC外部校正原理嵌入式项目流程管理知识介绍μC/OS-Ⅱ系统在F2812上的移植,以及实时多任务管理 第1章 芯片功能概述、软件介绍、项目流程管理研究1.1 TMS320F2812性能概述1.2 TMS320F2812结构概述1.2.1 引脚分布1.2.2 TMS320F2812引脚信号捕述1.3 TMS320F2812功能概览1.3.1 存储空间示意图1.3.2 简要描述1.4 DSP集成环境CCS介绍1.4.1 CCS安装1.4.2 CCS配置软件设置1.4.3 CCS软件慨述1.4.4 File(文件)菜单介绍1.4.5 Edit(编辑)菜单介绍1.4.6 View(视图)菜单介绍1.4.7 Project(工程)菜单介绍1.4.8 Debug(调试)菜单介绍1.5 CCS工程管理1.5.1 创建新的工程文件1.5.2 编译并运行程序1.6 一个简单的例子程序介绍1.6.1 基本的程序代码生成1.6.2 具体的程序开发介绍1.7 嵌入式项目开发流程管理1.7.1 概述1.7.2 项目启动1.7,3 项目计划1.7.4 项目研发1.7.5 项目结束第2章 C语言程序设计基础2.1 C语言数据结构及语法2.1.1 C语言数据结构2.1.2 C语言运算符与表达式2.2 程序控制结构2.2.1 if语句2.2.2 switch语句2.2.3 while语句2.2.4 for语句2.2.5 程序控制中的特殊运算符2.3 数组2.4 指引2.5 函数2.6 C语言编程规范2.6.1 环境2.6.2 语言规范2.6.3 字符类2.6.4 变情类型2.6.5 函数声明和定义2.6.6 变量初始化2.6.7 算法类型转换2.6.8 编程风格第3章 TMS320F2812外设的C语言程序设计3.1 导言3.2 传统的#define方法3.3 位定义和寄存器结构体定义方式3.3.1 定义寄存器结构体3.3.2 使用DATA_SECTION将寄存器结构体映射到地址空间3.3.3 添加位定义3.3.4 共同体定义3.4 位操作和寄存器结构体定义方式的优点3.5 对位或寄存器整体进行操作3.6 一个特殊的例子(eCAN控制寄存器)第4章 TMS320F2812系统控制及中断4.1 存储空间4.1.1 Flash存储器4.1.2 OTP存储器4.1.3 Flash和()TP寄存器4.2 时钟及系统控制4.2.1 时钟及系统控制概述4.2.2 外设时钟控制寄存器(PCLKCR)4.2.3 系统控制和状态寄存器(SCSR)4.2.4 高/低速外设时钟预定标寄存器(HISPCP/L()SPCP)4.3 振荡器及锁相环模块4.4 低功耗模式4.5 F2812外设结构4.5.1 外设结构寄存器4.5.2 受EALLOW保护的寄存器4.6 F2812外设中断扩展模块4.6.1 PIE控制器概述4.6.2 中断操作步骤4.6.3 向量表的映射4.6.4 中断源4.6.5 复用中断操作过程4.6.6 使能/禁止复用外设中断的程序步骤4.6.7 外设向CPU发出的复州中断请求流程4.6.8 PIE向量表4.6.9 P1E配置寄存器4.6.10 中断程序设计4.7 看门狗模块4.7.1 看门狗模块介绍4.7.2 看门狗计数寄存器(WDCNTR)4.7.3 看门狗复位寄存器(WDKEY)4.7.4 看门狗控制寄存器(WDCR)4.7.5 看门狗模块程序设计4.8 32位CPU定时器4.8.1 TIMERxTIM寄存器4.8.2 TIMERxPRD寄存器4.8.3 TIMERxTCR寄存器4.8.4 TIMERxTPR寄存器4.8.5 定时器程序设计4.9 通用输入输出口(GPI())4.9.1 GPI()介绍4.9.2 输入限制4.9.3 GPxMUX寄存器(功能选择寄存器)4.9.4 GPxDIR寄存器(方向控制寄存器)4.9.5 GPxDAT衡存器(数据寄存器)4.9.6 GPxSET寄存器(置位寄存器)4.9.7 GPxCLEAR寄存器(清除寄存器)4.9.8 GPxTOGGLE寄存器(取反触发寄器)4.9.9 寄存器位I/O引脚的映射4.9.10 GPIO程序设计第5章 TMS320F2812外部接口(XINTF)5.1 外部接U功能概述5.2 X1NTF配褂概述5.2.1 政变XINTF配置和时序寄器的程序5.2.2 XINTF时钟5.2.3 写缓冲器5.2.4 XINTF每个区域访问的引导、激活、跟踪的时序5.2.5 XREADY信号采样5.2.6 区域切换5.2.7 XMP/MC信号对XINTF的影响5.3 引导、激活、跟踪等待状态的配置5.4 XINTF寄存器5.4.1 XINTF时序寄存器(XTIMINGx)5.4.2 XINTF配性寄仔器(XINCNFx)5.4.3 XBANK寄存器5.5 信号描述5.6 XINTF操作时序图5.7 XINTF应用开发及C语言程序设计5.7.1 XINTF应用开发概述5.7.2 XINTF模块的C语言程序设计第6章 TMS320F2812串行通信接口(SCI)第7章 TMS3211F2812的串行外围设备接口(SPI)第8章 TMS320F2812增强型区域控制网络(eCAN)模块第9章 TMS320F2812模/数转换(ADC)模 块第10章 TMS320F2812事件管理器(EV)模块第11章 Boot ROM介绍和F2812程序仿真与下载第12章 基于TMS320F2812的电气平台开发设计附录 μC/OS-Ⅱ操作系统在F2812上移植及实时多任务管理参考文献……

求C语言windows.h头文件

如果c语言库里没有某个头文件 只需要将下好的头文件放入下面的路径即可

C语言头文件,conio.h,windows.h,string.h,math.h各有什么用?

conio.h,windows.h不是标准库的string.h math.h是标准库中的string.h主要提供处理字符串的一些函数math.h主要提供一些数学函数windows.h提供windows编程的接口,头文件等conio.h 提供控制台输入输出的一些函数

怎样学好单片机?和C语言一起学可以吗?

对于怎么学单片机,我觉得还是掌握它的硬件,存储结构,汇编一定要精通,因为入门汇编是非常有助与理解硬件的,如果你学会了单片机,再学别的,比如arm,这时候你可以只做到熟悉汇编就可以了,但第一次学单片机,汇编,一定要精通,我的意思是最初不要用c编写程序,用汇编写,写能10~20个汇编程序,你的汇编就会上一个档次,将来做开发会用到c语言,这时你就会发现有了汇编坚实的基础,优化c代码将是一件多么惬意的事情.关于学习单片机,我觉得,要有: 1.一个不断学习的心态:这条最主要,单片机需要坚持,我当初迷糊了一个月(我属于比较笨的那种),但坚持过来一个月应该能入门,所以要有不退缩,不断学习的心态. 2.一点点模数电基础,知道点对硬件内部工作原理好理解点. 3.至少一本单片机入门的书,选择讲解详细的,我当初用的学校发的教程,感觉不错,是张毅坤 陈善久 裘雪红编著的<单片微型计算机原理及应用> ,西安电子科技大学出版社 2008第n次印刷. 4.一个好的视频教程,主要是在你看不下去的时候看看视频教程,和书互补一下,而且讲得人能给你很多单片机的经验. 5.鉴于这是一门实践性课程,开发板必不可少,你可以让熟悉单片机的人给你做一个简易开发板,也可以购买,建议购买,因为例子和文档比较全,顺便看看电路图. 我的单片机老师,大学学的机械,30多岁转行单片机,自学,现在40岁左右,单片机玩的特别好,纯汇编编程.(当然,我并不建议你将来做项目也用汇编,等你掌握会汇编以后可以学C语言).最后祝你早日入门.

C语言源程序文件的后缀是什么?

标准后缀是.c编译后是.ob j 连接后是.exe上面那个人说的是错的

有哪位C语言高手能解决我的一个难题:如何编一程序“五子棋”或“俄罗斯方块”

去网上下代码

大一C语言oj题,答案错误百分之五十,看了好久没看出错误,求大佬帮帮忙,万分感谢

河南新华专注互联网教育三十二年 到校参观路费报销 免费试听课程!

c语言实现*/遗传算法改进BP神经网络原理和算法实现怎么弄

你提供的代码是一个基本的BP神经网络训练过程。一般都是用GA训练,之后再用改进动量法继续训练,直至最后达到目标。遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene)编码的一定数目的个体(individual)组成。每个个体实际上是染色体(chromosome)带有特征的实体。染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现,如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。

c语言–>什么意思

c语言中的%有以下用法有取余的用法例如:10%3=1还有就是赋值运算了例如假设a=9a%=5%3此题的意思就是a=a%(5%3)结果为a=1还有格式控制的意思在输入输出时用的printf(“c=%d ”,c);

C语言scanf函数怎么只读取字符串的第一个字符

你是怎么写输入控制字符串的????要想输入yeschararray[4];//定义一个长度为4的字符串scanf("%s",array);//%s输出字符串控制符。array本来就是一个地址就行了。charyon;scanf("%c",&yon);if(yon==89||yon==121)应该怎样改,使输入yes时也使if为真【这段程序只能输入一个字符,不能输入yes这个字符串啊,yes要占3个字符的空间,一个yon变量装不下】希望采纳~~~~

C语言中system(“taskkill/im ...”)后面为什么不能用个变量?

用system()是行不通的给你个例子,是我自己写的,在项目中用的功能是开启和关闭fsk进程的debug日志打印/**//* 版本:v1.0 * 作者: * 创建时间:2008-08-21 *修改记录: *程序说明:Debug 日志开关 * 控制Debug级别日志的开启|关闭 * 这个程序可以在以后扩展成为:结束任何进程,代替脚本 -*/#include<stdlib.h>#include<signal.h>#include<stdio.h>int main(int argc ,char **argv){ if(argc!=2){ fprintf(stderr,"Usage : %s on(Open Debug log)|off(Close Debug log) ",argv[0]); exit(0); } char buf[256]=""; int n=256; char *cmd = "ps aux |grep fsk |grep -v grep| awk "{print $2}""; FILE *ptr; if ((ptr = popen(cmd, "r")) != NULL) while (fgets(buf, n, ptr) != NULL); int killpid=atoi(buf); if(killpid==1){ fprintf(stderr,"get pid is %d,Error ",killpid); exit(0); } fprintf("get pid is %d ",killpid); if(strcmp(argv[1],"on")==0){ kill(killpid,SIGUSR1); fprintf(stderr,"Debuglog ON "); } if(strcmp(argv[1],"off")==0){ kill(killpid,SIGUSR2); fprintf(stderr,"Debuglog OFF "); }}后来,又写了一个关于移动文件的void removefile(char *filename,char * Dir){ char buf[256]=""; int n=256; char cmd[256]; sprintf(cmd,"mv %s %s",filename,Dir);/*如果你想kill掉某一个进程,可以照着这种写法:sprintf(cmd,"kill %s",processid);*/ FILE *ptr; if ((ptr = popen(cmd, "r")) != NULL) while (fgets(buf, n, ptr) != NULL);}希望对你有帮助

1.批处理文件写taskkill为什么会出现拒绝访问,应该怎么解决? 2.怎么用c语言写钩子程序?

在运行中输入试一下...http://zhidao.baidu.com/question/220875869.html

C语言,请大神帮我详细解释一下NONO函数在此程序中起什么作用?

NONO就是用来实现对文件的操作。定义的rf和wf是两个文件指针, rf = fopen("K:115224010097in.dat","r") ; wf = fopen("K:115224010097out.dat","w") ; // 表示分别用读和写打开两个文件fscanf(rf, "%s", a) ; fscanf(rf, "%s", b) ; // 表示从文件里面读取字符。 fprintf(wf, "%c=%d%A", ch, fun(a, ch)) ; // 表示在文件内部显示最后关闭文件fclose(rf) ; fclose(wf) ;其实这上面的和你从屏幕键盘上读取是一个道理,只不过是输入和输出的地方换了一下,没什么区别。。望采纳谢谢

C语言中的NONO()是什么

顶那个无名氏的

单片机控制PWM,用到双向可控硅。怎样设计相关电路图和程序(C语言的)?

这个我经常用,电机调速控制,严格说这不是PWM,是可控硅移相触发。电路很简单,一个可控硅触发电路,一个过零检测电路,配合一段中断服务程序就能完成。不知道你应用的一些详情,简单说一下思路。可控硅触发一般使用MOC3021,相关手册上有典型电路,CPU端接一个GPIO就可以。闭环控制时过零检测不需要很精确,一般用一个双向光耦就足够,光耦输入接交流电输入,输出接CPU中断,用史密特整形一下输出信号最好。中断程序的结构分成两部分,过零中断与延时中断。过零中断做两件事,输出复位,开始延时。如果定时器有外部管脚复位启动功能,可以不要这段。延时中断做一件事,触发输出。如果定时器有触发输出功能,可以没有这段中断程序。具体的延时时间,由主程序控制,一般是根据PID的计算结果进行设置。注意,延时时间越长,输出电压越小。

单片机控制PWM,用到双向可控硅。怎样设计相关电路图和程序(C语言的)?

这个我经常用,电机调速控制,严格说这不是PWM,是可控硅移相触发。x0dx0a电路很简单,一个可控硅触发电路,一个过零检测电路,配合一段中断服务程序就能完成。x0dx0ax0dx0a不知道你应用的一些详情,简单说一下思路。x0dx0a可控硅触发一般使用MOC3021,相关手册上有典型电路,CPU端接一个GPIO就可以。x0dx0a闭环控制时过零检测不需要很精确,一般用一个双向光耦就足够,光耦输入接交流电输入,输出接CPU中断,用史密特整形一下输出信号最好。x0dx0a中断程序的结构分成两部分,过零中断与延时中断。x0dx0a过零中断做两件事,输出复位,开始延时。如果定时器有外部管脚复位启动功能,可以不要这段。x0dx0a延时中断做一件事,触发输出。如果定时器有触发输出功能,可以没有这段中断程序。x0dx0a具体的延时时间,由主程序控制,一般是根据PID的计算结果进行设置。注意,延时时间越长,输出电压越小。

c语言 嵌入式 施密特触发器是什么?什么原理功能呢?单片机IO引脚的施密特触发功能怎么理解?一定采纳

施密特触发器的接收端电平只有达到某个阈值时,才会在输出端将对应的电平输出。例如:阈值是4.5伏,当接收端是0.5伏时,输出0,当触发器的接收端是4.0伏时,输出端还是0,只有当接收端大于等于4.5伏时,输出端才会变成1。而普通的触发器,可能在输入端为2.5伏时,输出已经变成了1。由此你可以看出,施密特触发器能大量的减少干扰造成的误动作。

为什么看C语言会头疼?

所以你猜为什么世界上有那么多工种 而不是只有程序员

C语言中*的作用

*s 是不是定义一个指针

c语言(gcc)怎么用select并发连接?求示例

select是用于监听IO设备的状态 例如:要读取键盘的键值 就先selec键盘 看是否有按键按下 有按键按下 select就能够监听到 然后通过read读取键值

c语言中控件的Visible和Show有什么区别?

简单的理解呢 是没有明显区别的 show是方法 visible是属性; show和visible都会触发Form_Load()事件. 但是 show 后面还有个参数(0和1 一个模式窗体和无模式,这是很重要的功能,通常用在锁定背景窗口时),visible则是隐藏和显示 它后面是赋值的. form2.show 1 "模式窗体,除了form2其它窗体被冻结 form2.unload "卸载窗体,而且会释放内存.也会触发Form_QueryUnload()事件, form2.visible=false"隐藏 但不会释放内存 同时还有form2.hide show是对应hide 从上可以看出它们的关键区别:内存是否释放

C语言编程题 从键盘上输入一年份,判断年份是否为闰年

你就给他两个if,然后进行嵌套,然后分别整除那两个数字就可以。

用C语言编写万年历程序

// test1.cpp : Defines the entry point for the console application.//#include "stdafx.h"//输入年份,输出年历。//---------------------------------------------------------------------------#include <stdio.h>#include <stdlib.h> int JudgeLeapYear(int); //判断是否为闰年 int MonthDay(int m,int y); //返回本月的天数 void printHeader(void); //输出表头 int FirstWeek(int m,int y); //返回本月一号是星期几 void printMonth(int m); //输出月份表头int main(int argc, char* argv[]){ int year,month,i,test,week; printf("Year:"); scanf("%d",&year); for (month=1; month<=12; month++) { test=1; printMonth(month); printHeader(); week=FirstWeek(month,year); if (week <= 6) { //输出每月的第一星期 for (i=0; i<=week; i++) { putchar(" "); test++; } } for (i = 1; i <= MonthDay(month,year); i++,test++) { //输出每个月非第一个星期 printf("%d ",i); if (test%7==0) { putchar(" "); } } putchar(" "); system("pause");//暂停,以便观察输出 } return 0;}//判断是否润年int JudgeLeapYear(int y){ return (y%4==0&&y%100||y%400==0)?1:0;}//返回这月的一号是星期几int FirstWeek(int month,int year){ if (month<3) { month+=12; year--; } return (1+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7;}//一月有多少天int MonthDay(int month,int year){ int d; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12:d=31;break; case 4: case 6: case 9: case 11:d=30;break; case 2:d=JudgeLeapYear(year)?29:28;break; } return d;}//打印日历头void printHeader(void){ printf("%s %s %s %s %s %s %s ","Sun","Mon","Tue","Wed","Thur","Fri","Sat");}//打印月份void printMonth(int m){ switch (m) { default: case 1:puts("===January===");break; case 2:puts("===February===");break; case 3:puts("===March===");break; case 4:puts("===April===");break; case 5:puts("===May===");break; case 6:puts("===June===");break; case 7:puts("===July===");break; case 8:puts("===August===");break; case 9:puts("===September===");break; case 10:puts("===October===");break; case 11:puts("===November===");break; case 12:puts("===December===");break; }}//---------------------------------------------------------------------------

c语言编程:输入一个年份,判断其是否为闰年,并输出判断结果。

#include "stdio.h"int main(){ int year; printf("please input a year: "); scanf("%d",&year); if( ( year%400 == 0 ) || ( year%100 != 0) && ( year%4 == 0) ) printf("yes,it is a leap year! ");else printf("NO.It"s not a leap year");return 0;}}

c语言中感叹号有无中英文区别?

c语言音频播放代码没有声音

一.在程序中直接播放声音文件在VC++ 中的多媒体动态连接库中提供了一组与音频设备有关的函数。利用这些函数可以方便地播放声音。最简单的播放声音方法就是直接调用VC++中提供的声音播放函数BOOL sndPlaySound ( LPCSTR lpszSound,UINT fuSound ); 或BOOL PlaySound( LPCSTR lpszSound, HMODULE hmod, DWORD fuSound );其中参数lpszSound是需要播放声音的.W***文件的路径和文件名, hmod在这里为NULL,fuSound是播放声音的标志,详细说明请参考VC++中的帮助。 例如播放C:soundmusic.wav可以用sndPlaySound ("c:soundmusic.wav",SND_ASYNC);或PlaySound("c:soundmusic.wav",NULL, SND_ASYNC|SND_NODEFAULT );如果没有找到music.wav文件,第一种格式将播放系统默认的声音,第二种格式不会播放系统默认的声音。二.将声音文件加入到程序中在VC++的程序设计中,可以利用各种标准的资源,如位图,菜单,对话框等。同时VC++也允许用户自定义资源,因此我们可以将声音文件作为用户自定义资源加入程序资源文件中,经过编译连接生成EXE文件,实现无.W***文件的声音播放。要实现作为资源的声音文件的播放,首先要在资源管理器中加入待播放的声音文件。具体步骤入下:1.获得包含资源的模块句柄:HMODULE hmod=AfxGetResourceHandle();2.检索资源块信息:HRSRC hSndResource=FindResource(hmod,MAKEINTRESOURCE(IDR_W***E1),_T("W***E"));3. 装载资源数据并加锁:HGLOBAL hGlobalMem=LoadResource(hmod,hSndResource);LPCTSTR lpMemSound=(LPCSTR)LockResource(hGlobalMem);4.播放声音文件:sndPlaySound(lpMemSound,SND_MEMORY));5.释放资源句柄:FreeResource(hGlobalMem);

如何用C语言播放一段音频呢

可以用Windows中的PlaySound函数,Windows中下载有playSound函数,但只能播放wav格式音频文件用法如下:#include <windows.h>#include <stdlib.h>int main(int argc, char* argv[]){PlaySound("文件名字.wav", NULL, SND_FILENAME | SND_ASYNC);system("pause");return 0;}

C语言能做人工智能吗?

分类: 电脑/网络 >> 程序设计 >> 其他编程语言 问题描述: C语言能做人工智能吗? 解析: 理论上讲是在于算法 但在具体的实现上,同一问题用不同的语言解决的时候的算法设计是有区别的,即使实现了,那在效率也是有差别的 据我所知,LISP是人工智能程序语言(很少听说听C做人工智能的)标题:LISP人工智能程序语言 内容: LISP的由来 LISP是一种计算机的表处理语言,是函数型语言。它是LIST Processing 的缩写,是研究人工智能的有力工具。 LISP最初是作为书写字符与表的递归函数的形式系统出现的,1958年由美国麻省理工学院(MIT)的AI小组提出(要为问答系统设计一种语言),1960年由MIT的John.McCarthy教授(麦卡西教授,举世闻名的计算机科学家,图灵奖获得者,后为美国斯坦福大学教授)整理成统称为LISP1.0的形式发表,然后开始流行于AI界.以后陆续出现了LISP1.5(1962年),LISP1.6,MACLISP,INTERLISP,COMMONLISP,GCLISP,CCLISP等等变种。商业中一般认Berkeley(加洲大学)的LISP1.5为规范,但以目前的发展看,COMMON LISP将成为一种标准,有统一各种LISP “方言”的趋势。在众多不同版本的流行LISP语言中,使用最广泛的是INTER LISP(XEROX公司开发),MACLISP(麻省理工学院开发)和COMMON LISP。LISP是继FORTRAN(FORTRAN是1954年提出,1956年开始使用)之后出现的第二个古老的(1958年提出,1960年开始使用)计算机高级语言,至今使用近四十年仍受重视,并为人工智能的发展作出了不可磨灭的贡献.由此可见LISP是一门历史悠久,用途广泛,功能极强,生命力极强的人工智能程序设计语言。 LISP语言一般为解释型语言(即由解释程序边解释边执行),但也有了编译型的LISP语言,并已经有了专用的LISP机。例如,编译型的LISP语言SCHEME诞生于麻省理工学院,1984年由美国15个大学和公司共同提供了被广泛接受的SCHEME标准。德克萨斯仪器公司于1985年在IBM PC机上实现了称为PC SCHEME的语言。PC SCHEME的中文版由南京大学和武汉大学联合开发,可在640KB以上的PC机上在CCDOS和MSDOS下运行并可访问其它DOS程序。 LISP语言的主要特点(优点) (1) LISP具有和图灵机相同的(也就是理论上最高的)计算能力; 在计算机科学的可计算理论中,人们已经证明递归函数和图灵机具有相同的(也就是理论上最高的)计算能力,通常指的是自然数集上的递归函数。这个结论对符号集上的递归函数也成立。J.McCarthy在LISP中设计了一套符号处理函数,它们具有符号集上的递归函数的计算能力,因此原则上可以解决人工智能中的任何符号处理问题。 (2)数据类型的唯一性,程序与数据的一致性; LISP的数据类型和句法结构简单,甚至简单到具有唯一性和一致性:其数据和程序的表现形式是一样的, 都是用S-表达式一种形式.基本的数据结构是表(表是S-表达式的特例)。 (3)数据和程序的 等价性; LISP的数据和程序不仅类型一致,而且作用也等价; 即:程序可作为数据被处理,数据也可作为程序来执行。 (4)LISP一切功能由函数来实现,程序的运行就是求值; LISP程序的通常形式是一串函数定义,其后跟着一串带有参数的函数调用,函数之间的关系只是在调用执行时才体现出来。 (5)LISP语言的控制结构以递归为主; 大多数语言使用的控制结构是以循环为主的,有的程序语言允许递归,而LISP以递归形式为主。递归是LISP能力的源泉。当然现在LISP也有循环结构和迭代。 (6)原子可以有任意多个值(特性值); LISP非常重要的一个特点是每个文字原子可以加许多特性,每个特性有一个特性表及对应的特性值。由于原子的多值性给使用者带来很多方便,给问题表示带来好处,使LISP很好用。 (7)LISP具有表的结构形式和规模的灵活性,不必预先设定; (8)具有收集无用单元的功能。 LISP语言的主要缺点 (1)初学者不容易习惯LISP的句法结构,特别是多层表的括号配对写法; (2)数据类型少(常用的只有表和原子),使其表达能力受限; (3)规范性差(无标准版本,不同的LISP文本间差别较大); (4)程序的可读性不及一般的高级语言; (5)执行速度慢。 LISP执行速度慢的原因有几个:(1)一般的 LISP是解释型, 程序边解释边执行当然比编译型慢;(2)LISP的控制结构主要是递归, 递归费时间费空间;(3)内存空间动态变化。LISP不要求用户在程序 中写一些用来指示内存分配的说明语句,全部内存必须动态的分配,直到 没有空间时才开始收集无用单元。

求试题,17届NOIP(C语言)普及组初赛试题

楼主直接去NOIP贴吧 置顶帖有你想要的东西 给分吧 你不给我也被度娘吃掉了 大家都是oi 你说对吧

c语言编程 编写求字符串长度的函数int strlen(char*s),在主函数中调用该函数输出指定字符串的长度

代码:#include&lt;stdio.h&gt;int mystrlen(char*str){int size=0;if(NULL==str)return-1;while(*str){size++;str++;}return size;}int main(int argc,const char*argv[]){char str[1024];printf("please input string:");gets(str);printf("mystrlen=%d ",mystrlen(str));return 0;}方法二、int Strlen(char*s){int i;for(i=0;*s!="";s++)//计算字符串串长(不用strlen)i++;return i;}//返回值为累加的iint main(){char a[100],*s;int n;printf("Enter a string:");scanf("%s",a);n=Strlen(a);printf("该字符串串长为:%d ",n);return 0;}扩展资料:C语言strlen()函数用法头文件:#include&lt;string.h&gt;strlen()函数用来计算字符串的长度,其原型为:unsigned int strlen(char*s);s为指定的字符串eg:#include&lt;stdio.h&gt;#include&lt;string.h&gt;int main(){char*str1="http://see.xidian.edu.cn/cpp/u/shipin/";char str2[100]="http://see.xidian.edu.cn/cpp/u/shipin_liming/";char str3[5]="12345";printf("strlen(str1)=%d,sizeof(str1)=%d ",strlen(str1),sizeof(str1));printf("strlen(str2)=%d,sizeof(str2)=%d ",strlen(str2),sizeof(str2));printf("strlen(str3)=%d,sizeof(str3)=%d ",strlen(str3),sizeof(str3));return 0;}运行结果:strlen(str1)=38,sizeof(str1)=4strlen(str1)=45,sizeof(str1)=100strlen(str1)=53,sizeof(str1)=5

二维数组的数组名字是什么类型?C语言

这明显是类型不匹配,比如:int a[1][2]; //类型是int[1][2],表达式a可以隐式转换为&a[0],类型是int(*)[2]int *b; //类型是int*b=a; //类型不兼容LZ只考虑了一个函数的情况,而且这个数组是你写的,你什么都清楚。但事实上,只要你写过比较大的程序,用到了数组,你就知道,当传递过来一个**matrix参数的时候,你绝对蒙了,因为你根本不知到这个matrix应该怎么用。在数组传递的时候,要么直接传数组(行列数全知道),要么传数组指针(至少知道列数)。

用C语言编写迷宫问题,

树的遍历

高分求:迷宫问题数据结构(C语言)

二维数组

C语言编程编译没问题 但进入不到主函数

没有良好的编程书写习惯。看着难受啊。

迷宫问题,C语言

#include"stdio.h"#define M 6#define N 8#define MAX 100typedef struct { int x;int y;}item;typedef struct{ int x,y,d;}sanyuan;typedef struct{ sanyuan elem[MAX];int top;}sqstack;void Initstack(sqstack *s){s->top=-1;}int stackempty(sqstack *s){if(s->top==-1) return 1;else return 0;}void push(sqstack *s,sanyuan e){if(s->top==MAX-1){printf("stack is full ");return;}s->top++;s->elem[s->top]=e;}sanyuan pop(sqstack *s,sanyuan e){e=s->elem[s->top];s->top--;return e;}void printpath(sqstack *s){sanyuan temp;printf("(%d,%d)<==",M,N);while(!stackempty(s)){temp=pop(s,temp);printf("(%d,%d)<==",temp.x,temp.y);}printf(" ");}int mazepath(){int maze[M+2][N+2]={{1,1,1,1,1,1,1,1,1,1},{1,0,1,1,1,0,1,1,1,1},{1,1,0,1,0,1,1,1,1,1},{1,0,1,0,0,0,0,0,1,1},{1,0,1,1,1,0,1,1,1,1},{1,1,0,0,1,1,0,0,0,1},{1,0,1,1,0,0,1,1,0,1},{1,1,1,1,1,1,1,1,1,1}};item move[8]={{0,1},{1,1},{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1}};sqstack *s;sanyuan temp;int x,y,d,i,j;Initstack(s);temp.x=1;temp.y=1;temp.d=-1;push(s,temp);while(!stackempty(s)){pop(s,temp);x=temp.x;y=temp.y;d=temp.d+1;while(d<8){i=x+move[d].x;j=y+move[d].y;if(maze[i][j]==0){temp.x=x;temp.y=y;temp.d=d;push(s,temp);x=i;y=j;maze[x][y]=-1;if(x==M&&y==N){printpath(s);return 1;}else d=0;}else d++;}}return 0;} void main(){mazepath();}

数据结构算法(c语言) 迷宫求解

注释非常详细,希望对你有所帮助。#include<stdio.h> #include<stdlib.h> #define M 15 #define N 15 struct mark //定义迷宫内点的坐标类型 { int x; int y; }; struct Element //"恋"栈元素,嘿嘿。。 { int x,y; //x行,y列 int d; //d下一步的方向 }; typedef struct LStack //链栈 { Element elem; struct LStack *next; }*PLStack; /*************栈函数****************/ int InitStack(PLStack &S)//构造空栈 { S=NULL; return 1; } int StackEmpty(PLStack S)//判断栈是否为空 { if(S==NULL) return 1; else return 0; } int Push(PLStack &S, Element e)//压入新数据元素 { PLStack p; p=(PLStack)malloc(sizeof(LStack)); p->elem=e; p->next=S; S=p; return 1; } int Pop(PLStack &S,Element &e) //栈顶元素出栈 { PLStack p; if(!StackEmpty(S)) { e=S->elem; p=S; S=S->next; free(p); return 1; } else return 0; } /***************求迷宫路径函数***********************/ void MazePath(struct mark start,struct mark end,int maze[M][N],int diradd[4][2]) { int i,j,d;int a,b; Element elem,e; PLStack S1, S2; InitStack(S1); InitStack(S2); maze[start.x][start.y]=2; //入口点作上标记 elem.x=start.x; elem.y=start.y; elem.d=-1; //开始为-1 Push(S1,elem); while(!StackEmpty(S1)) //栈不为空 有路径可走 { Pop(S1,elem); i=elem.x; j=elem.y; d=elem.d+1; //下一个方向 while(d<4) //试探东南西北各个方向 { a=i+diradd[d][0]; b=j+diradd[d][1]; if(a==end.x && b==end.y && maze[a][b]==0) //如果到了出口 { elem.x=i; elem.y=j; elem.d=d; Push(S1,elem); elem.x=a; elem.y=b; elem.d=886; //方向输出为-1 判断是否到了出口 Push(S1,elem); printf(" 0=东 1=南 2=西 3=北 886为则走出迷宫 通路为:(行坐标,列坐标,方向) "); while(S1) //逆置序列 并输出迷宫路径序列 { Pop(S1,e); Push(S2,e); } while(S2) { Pop(S2,e); printf("-->(%d,%d,%d)",e.x,e.y,e.d); } return; //跳出两层循环,本来用break,但发现出错,exit又会结束程序,选用return还是不错滴} if(maze[a][b]==0) //找到可以前进的非出口的点 { maze[a][b]=2; //标记走过此点 elem.x=i; elem.y=j; elem.d=d; Push(S1,elem); //当前位置入栈 i=a; //下一点转化为当前点 j=b; d=-1; } d++; } } printf("没有找到可以走出此迷宫的路径 "); } /*************建立迷宫*******************/ void initmaze(int maze[M][N]) { int i,j; int m,n; //迷宫行,列 [/M] printf("请输入迷宫的行数 m="); scanf("%d",&m); printf("请输入迷宫的列数 n="); scanf("%d",&n); printf(" 请输入迷宫的各行各列: 用空格隔开,0代表路,1代表墙 ",m,n); for(i=1;i<=m;i++) for(j=1;j<=n;j++) scanf("%d",&maze[i][j]); printf("你建立的迷宫为(最外圈为墙)... "); for(i=0;i<=m+1;i++) //加一圈围墙 { maze[i][0]=1; maze[i][n+1]=1; } for(j=0;j<=n+1;j++) { maze[0][j]=1; maze[m+1][j]=1; } for(i=0;i<=m+1;i++) //输出迷宫 { for(j=0;j<=n+1;j++) printf("%d ",maze[i][j]); printf(" "); } } void main() { int sto[M][N]; struct mark start,end; //start,end入口和出口的坐标 int add[4][2]={{0,1},{1,0},{0,-1},{-1,0}};//行增量和列增量 方向依次为东西南北 [/M] initmaze(sto);//建立迷宫 printf("输入入口的横坐标,纵坐标[逗号隔开] "); scanf("%d,%d",&start.x,&start.y); printf("输入出口的横坐标,纵坐标[逗号隔开] "); scanf("%d,%d",&end.x,&end.y); MazePath(start,end,sto,add); //find path system("PAUSE"); } 测试数据,算法复杂度你就自己来写吧,如果你连这都不自己做,那你一定是在应付作业。劝你还是自己运行测试一下吧,免得答辩时老师问你,什么都不知道,那你就悲剧了。祝你好运!!

数据结构与算法作业:用C语言编程随机生成一个迷宫,然后找出从入口到出口的路线图。急!

#include <stdio.h>#include <stdlib.h>#include <time.h>#include <memory.h>/* define the size of maze */#define MAX_COL 6#define MAX_ROW 6#define TRUE 1#define FALSE 0#define IS_USABLE(a, b) (a >= 0 && a < MAX_ROW) && (b >= 0 && b < MAX_COL) && maze[a][b] && (!my_maze[a][b])static int maze[MAX_ROW][MAX_COL];static int target_maze[MAX_ROW][MAX_COL];static void init_maze();static int move_to(int i, int j, int (*maze)[MAX_COL], int count);static void print_maze(int (*maze)[MAX_COL]);static void init_maze(){ int i, j; srand((unsigned) time(NULL)); for (i = 0; i < MAX_ROW; i++) for(j = 0; j < MAX_COL; j++) { maze[i][j] = (int) (rand() % 2); } maze[1][0] = 1; /* start point */ maze[MAX_ROW - 1][MAX_COL - 2] = 1; /* end point */}static int move_to(int _i,int _j, int (*in_maze)[MAX_COL], int count) { int my_maze[MAX_ROW][MAX_COL], i, j; if (!in_maze) { for (i = 0; i < MAX_ROW; i++) for(j = 0; j < MAX_COL; j++) { my_maze[i][j] = 0; } } else { for (i = 0; i < MAX_ROW; i++) for(j = 0; j < MAX_COL; j++) { my_maze[i][j] = in_maze[i][j]; } } my_maze[_i][_j] = count; /* reach the end point */ if (_i == MAX_ROW - 1 && _j == MAX_COL - 2) { for (i = 0; i < MAX_ROW; i++) for(j = 0; j < MAX_COL; j++) { target_maze[i][j] = my_maze[i][j]; } return TRUE; } if (IS_USABLE(_i - 1, _j)) { if (move_to(_i - 1, _j, my_maze, count + 1)) return TRUE; } if (IS_USABLE(_i + 1, _j)) { if (move_to(_i + 1, _j, my_maze, count + 1)) return TRUE; } if (IS_USABLE(_i, _j - 1)) { if (move_to(_i, _j - 1, my_maze, count + 1)) return TRUE; } if (IS_USABLE(_i, _j + 1)) { if (move_to(_i, _j + 1, my_maze, count + 1)) return TRUE; } return FALSE;}static void print_maze(int (*maze)[MAX_COL]) { int i, j; for (i = 0; i < MAX_ROW; i++) { for(j = 0; j < MAX_COL; j++) { if (maze[i][j] != 0) printf("%d ", maze[i][j]); else printf(" "); } printf(" "); }}int main(){ while(1) { init_maze(); printf("Out put the maze : "); print_maze(maze); if (move_to(1, 0, NULL, 1)) { printf("Out put the path : "); print_maze(target_maze); break; } else { printf("No way! "); } }}VC60下正常运行

用51单片机C语言版设计秒表倒计时

可以啊交给我

c语言:panic()函数的功能及所在的库

Panic()函数(实际上是User::Panic())是当系统发现无法继续运行下去的故障时将调用它,会导致程序中止,然后由系统显示错误号。内核的panic 函数(即panic())的程序代码 就放在内核源码树里的kernel/panic.c 文件中。

用C语言编一个小游戏,注明编码,(简单易懂的游戏,不要复杂)

我这有许多C的小游戏。给你一个基础的简单的汉诺塔程序。你看看:这是个汉诺塔程序,在调试的时候,输入的数字最好不要大于15,因为每大一个数所得的结果的步骤都会多一倍。如果你有耐心等待结果的话除外。汉诺塔是在欧洲流行的一种游戏,有a,b,c三个竿。a竿上有若干个由大到小的圆盘,大的在下面,小的在上面,b,c都是空杆,请你把a杆上的圆盘都倒到别的杆上,或b或c,在倒盘的过程中不可以大的压小的,实例程序如下:#include <stdio.h>int i=0;main(){ unsigned n; printf("Please enter the number of discs: "); scanf("%d",&n); printf(" needle: a b c "); movedisc(n,"a","c","b"); printf(" Total: %d ",i); getch();}movedisc(n,fromneedle,toneedle,usingneedle)unsigned n;char fromneedle,toneedle,usingneedle;{ if(n>0) { movedisc(n-1,fromneedle,usingneedle,toneedle); i++; switch(fromneedle) { case "a":switch(toneedle) { case "b":printf(" [%d]: %2d------>%2d ",i,n,n); break; case "c":printf(" [%d]: %2d------------->%2d ",i,n,n); break; } break; case "b":switch(toneedle) { case "a":printf(" [%d]: %2d<----------%2d ",i,n,n); break; case "c":printf(" [%d]: %2d------>%2d ",i,n,n); break; } break; case "c":switch(toneedle) { case "a":printf(" [%d]: %2d<--------------%2d ",i,n,n); break; case "b":printf(" [%d]: %2d<--------%2d ",i,n,n); break; } break; } movedisc(n-1,usingneedle,toneedle,fromneedle); }}

C语言 冒泡排序编译出错

orz...你新手就写出了这么多啊...我感到了巨大的压力...

C语言,冒泡排序法从大到小

这个乱码是有一个数据溢出边界了。使用边界值进行追踪,很快就能发现在哪儿溢出的一般都是在for循环里面交换的时候会出现这种问题。

求c语言图的深度优先遍历算法

int visited[n] Graph g;DFS(i)int i;{int j;printf("node:%c ",g.vexs[i]);visited[i]=true;for(j=0;j<n;j++)if((g.arcs[i][j]==1)&&(!visited[j]))DFS(j);}vexnode g1[n]DFSL(i)int i;{int j;edgenode *p;printf("node:%c ",g1[i].vertex);visited[i]=true;p=g1[i].link;while(p!=NULL){if(!visited[p->adjvex])DFSL(p->adjvex);p=p->next;}}

c语言版的数据结构课设-校园导游咨询!!!急急急!!

我只有C++的~~#include<iostream>#include<string>using namespace std;#define MaxVertexNum 50 /*景点个数最大50*/#define MAXCOST 1000 /*定义路径的无穷大*/#define T 8 /*目前景点个数*/typedef struct{ char name[20]; /*景点名称*/ char number[15]; /*景点代号*/ char introduce[100]; /*景点简介*/}Elemtype;typedef struct{ int num; /*顶点编号*/ Elemtype date; /*顶点信息*/}Vertex; /*定义顶点*/typedef struct{ Vertex vexs[MaxVertexNum]; /*存放顶点的一维数组,数组第零个单元没有用上*/ unsigned int edges[MaxVertexNum][MaxVertexNum]; /*存放路径的长度*/ int n,e;}MGraph;MGraph MGr; /*全局变量,定义MGr为MGraph类型*/int shortest[MaxVertexNum][MaxVertexNum]; /*定义全局变量存贮最小路径*/int path[MaxVertexNum][MaxVertexNum]; /*定义存贮路径*/void init(){ int i,j; MGr.vexs[1].num=1; strcpy(MGr.vexs[1].date.name,"学校东门"); strcpy(MGr.vexs[1].date.number,"001"); strcpy(MGr.vexs[1].date.introduce,"挨着三好街,购物很方便。"); MGr.vexs[2].num=2; strcpy(MGr.vexs[2].date.name,"综合楼"); strcpy(MGr.vexs[2].date.number,"002"); strcpy(MGr.vexs[2].date.introduce,"学校最新的大楼。"); MGr.vexs[3].num=3; strcpy(MGr.vexs[3].date.name,"逸夫楼"); strcpy(MGr.vexs[3].date.number,"003"); strcpy(MGr.vexs[3].date.introduce,"上课的地方。"); MGr.vexs[4].num=4; strcpy(MGr.vexs[4].date.name,"教学馆"); strcpy(MGr.vexs[4].date.number,"004"); strcpy(MGr.vexs[4].date.introduce,"上课的地方。"); MGr.vexs[5].num=5; strcpy(MGr.vexs[5].date.name,"篮球场"); strcpy(MGr.vexs[5].date.number,"005"); strcpy(MGr.vexs[5].date.introduce,"打篮球的地方。"); MGr.vexs[6].num=6; strcpy(MGr.vexs[6].date.name,"大活"); strcpy(MGr.vexs[6].date.number,"006"); strcpy(MGr.vexs[6].date.introduce,"开晚会搞活动的地方。"); MGr.vexs[7].num=7; strcpy(MGr.vexs[7].date.name,"汉卿会堂"); strcpy(MGr.vexs[7].date.number,"007"); strcpy(MGr.vexs[7].date.introduce,"开讲座的地方。"); MGr.vexs[8].num=8; strcpy(MGr.vexs[8].date.name,"主楼"); strcpy(MGr.vexs[8].date.number,"008"); strcpy(MGr.vexs[8].date.introduce,"做实验的地方。"); for(i=1;i<=T;i++) { for(j=1;j<=T;j++) { MGr.edges[i][j]=MAXCOST; } } for(i=1;i<=T;i++) { shortest[i][i]=0; } /*初始化*/ MGr.edges[1][2]=MGr.edges[2][1]=25; MGr.edges[1][5]=MGr.edges[5][1]=15; MGr.edges[1][3]=MGr.edges[3][1]=10; MGr.edges[2][8]=MGr.edges[8][2]=30; MGr.edges[5][7]=MGr.edges[7][5]=32; MGr.edges[7][8]=MGr.edges[8][7]=12; MGr.edges[6][7]=MGr.edges[7][6]=6; MGr.edges[3][4]=MGr.edges[4][3]=24; MGr.edges[4][6]=MGr.edges[6][4]=50; MGr.edges[1][1]=MGr.edges[2][2]=MGr.edges[3][3]=MGr.edges[4][4]=0; MGr.edges[5][5]=MGr.edges[6][6]=MGr.edges[7][7]=MGr.edges[8][8]=0;} void introduce(){ int n; cout<<"请输入查询景点编号:"<<endl; cin>>n; switch(n) { case 1: cout<<"景点编号:"<<MGr.vexs[1].date.number<<"景点名称:"<<MGr.vexs[1].date.name; cout<<"景点简介:"<<MGr.vexs[1].date.introduce<<endl; break; case 2: cout<<"景点编号:"<<MGr.vexs[2].date.number<<"景点名称:"<<MGr.vexs[2].date.name; cout<<"景点简介:"<<MGr.vexs[2].date.introduce<<endl; break; case 3: cout<<"景点编号:"<<MGr.vexs[3].date.number<<"景点名称:"<<MGr.vexs[3].date.name; cout<<"景点简介:"<<MGr.vexs[3].date.introduce<<endl; break; case 4: cout<<"景点编号:"<<MGr.vexs[4].date.number<<"景点名称:"<<MGr.vexs[4].date.name; cout<<"景点简介:"<<MGr.vexs[4].date.introduce<<endl; break; case 5: cout<<"景点编号:"<<MGr.vexs[5].date.number<<"景点名称:"<<MGr.vexs[5].date.name; cout<<"景点简介:"<<MGr.vexs[5].date.introduce<<endl; break; case 6: cout<<"景点编号:"<<MGr.vexs[6].date.number<<"景点名称:"<<MGr.vexs[6].date.name; cout<<"景点简介:"<<MGr.vexs[6].date.introduce<<endl; break; case 7: cout<<"景点编号:"<<MGr.vexs[7].date.number<<"景点名称:"<<MGr.vexs[7].date.name; cout<<"景点简介:"<<MGr.vexs[7].date.introduce<<endl; break; case 8: cout<<"景点编号:"<<MGr.vexs[8].date.number<<"景点名称:"<<MGr.vexs[8].date.name; cout<<"景点简介:"<<MGr.vexs[8].date.introduce<<endl; break; default: cout<<"输入序号错误。"; break; }}void floyd(){ int i,j,k; for(i=1;i<=T;i++) { for(j=1;j<=T;j++) { shortest[i][j]=MGr.edges[i][j]; path[i][j]=0; } } /*初始化数组*/ for(k=1;k<=T;k++) { for(i=1;i<=T;i++) { for(j=1;j<=T;j++) { if(shortest[i][j]>(shortest[i][k]+shortest[k][j])) { shortest[i][j]=shortest[i][k]+shortest[k][j]; path[i][j]=k; path[j][i]=k;/*记录经过的路径*/ }//end_if } } }//end_for}void display(int i,int j){/* 打印两个景点的路径及最短距离 */ int a,b; a=i; b=j; cout<<"您要查询的两景点间最短路径是: "; if(shortest[i][j]!=MaxVertexNum) { if(i<j) { cout<<b; while(path[i][j]!=0) {/* 把i到j的路径上所有经过的景点按逆序打印出来*/ cout<<"<-"<<path[i][j]; if(i<j) j=path[i][j]; else i=path[j][i]; } cout<<"<-"<<a; cout<<" "; cout<<a<<"->"<<b<<"最短距离是"<<shortest[a][b]<<"米"<<" "; } else { cout<<a; while(path[i][j]!=0) {/* 把i到j的路径上所有经过的景点按顺序打印出来*/ cout<<"->"<<path[i][j]; if(i<j) j=path[i][j]; else i=path[j][i]; } cout<<"->"<<b; cout<<" "; cout<<a<<"->"<<b<<"最短距离是:"<<shortest[a][b]<<"米 "<<endl; } } else cout<<"输入错误!不存在此路! "; }/*display*/int shortestdistance(){/*要查找的两景点的最短距离*/ int i,j; cout<<"请输入要查询的两个景点的编号(1->8的数字编号并用" "间隔):"; cin>>i>>j; if(i>T||i<=0||j>T||j<0) { cout<<"输入信息错误! "; cout<<" 请输入要查询的两个景点的编号(1->8的数字编号并用" "间隔): "; cin>>i>>j; } else { floyd(); display(i,j); } return 1;}/*shortestdistance*/void main(){ char k; init(); cout<<"******************************************************************* "; cout<<"* * "; cout<<"* * "; cout<<"* 欢迎使用校园导游咨询 * "; cout<<"* * "; cout<<"****************************************************************** "; while(1) { cout<<"1.景点信息查询请按 i 键 "; cout<<"2.景点最短路径查询请按 s 键 "; cout<<"3.退出系统请按 e 键 "; cout<<"请选择服务:"; cin>>k; switch(k) { case "i": cout<<"景点简介查询(请输入1~8)。"; introduce(); break; case "s": cout<<"景点最短路径查询。"; shortestdistance(); break; case "e": exit(0); } }system("pause");}

C语言多读入前面一个回车是为何?

加上getchar();试试

C语言数据结构图求入度的算法

//思路:先把邻接表转换成逆邻接表,这样问题简单多了。//数组out,保存各节点的入度voidcountindegree(AdjListgin,AdjListgout){//设有向图有n个顶点,建逆邻接表的顶点向量。for(inti=1;i<=n;i++){gin[i].vertex=gout[i].vertex;gin.firstarc=null;}//邻接表转为逆邻接表。for(i=1;i<=n;i++){p=gout[i].firstarc;//取指向邻接表的指针。while(p!=null){j=p->adjvex;s=(ArcNode*)malloc(sizeof(ArcNode));//申请结点空间。s->adjvex=i;s->next=gin[j].firstarc;gin[j].firstarc=s;p=p->next;//下一个邻接点。}//while}//endoffor//统计各节点的入度for(i=0;i<n;i++){p=gin[i].firstarc;while(p!=null){out[i]++;p=p->next;}//endofwhile}//endoffor}//endoffunction

下面这个C语言片段为什么vertextype是数组名却可以作为类型名?

因为它不是数组名,typedef后面定义的是一个“类型”而不是一个数组变量

C语言的VRType

是自己定的数据类型吧,可能是共用体或是联合体

c语言Vertextype data的意思?

Vertex type 是顶点类型的意思。是 图论 里的概念。例如: isolated vertex 孤立顶点leaf vertex 叶子顶点source vertex 源点sink vertex 汇点 等等。Vertextype data 顶点类型数据, 例如:这个 网格图 包含 多少节点,每个点 的 类型编码是几。

如何用c语言在一组数中查找一个和已知数最接近的数值,像excel中的hlookup一样

main(){ //定义一个有10个元素的一维数组,并赋值,10个值是随便打的。 static float a[10]={2.1,3.5,4.2,2.2,3.3,5.8,6.7,4.4,5.9,6.5} float b[10];//yzs是已知数,min是最小值所在的i值 float yzs; int i,min; min=0; printf("请输入已知数: "); scanf("%f",&yzs); for(i=0,i<10,i++) b[i]=(a[i]>yzs)?a[i]-yzs:yzs-a[i]; for(i=0,i<10,i++) min=(b[i]<b[min])?i:min; printf("最接近%f的值是%f",yzs,a[min])}

c语言 那个输入文件放在哪里啊

如果是相对路径的话,你的exe文件在哪,你的data文件就放在哪

有哪位大仙能够帮帮我这道C语言编程题!

/*学生通讯录管理系统:1.学生信息包括:学号、姓名、性别、生日、年龄和平均分;2.用链表实现;3.可以浏览学生信息,插入学生信息(在任意位置插入学生信息),新增学生信息(在链表尾部新增学生信息),删除学生信息,查找学生信息和修改学生信息.*/#include<stdio.h> #include<stdlib.h> #include<string.h> #include<malloc.h>typedef struct student_info { char stu_name[15]; long stu_num; char stu_sex[10]; char Birthday[30]; char age[30]; char Gpa[15]; struct student_info *next; }Student; Student *head; /*为全局变量*/Student *load() /*载入函数,从文件中读数据建立链表*/ { FILE *fp; Student *head_1,*p,*q; head_1=NULL; fp=fopen("student","rb"); if(fp==NULL) { fp=fopen("student","wb"); fclose(fp); return head_1; } p=(Student*)malloc(sizeof(Student)); if(fread(p,sizeof(Student),1,fp)!=1) return head_1; head_1=p; while(!feof(fp)) { q=p; p=(Student*)malloc(sizeof(Student)); fread(p,sizeof(Student),1,fp); q->next=p; } q->next=NULL; free(p); fclose(fp); return head_1; } int save() /*将修改后的链表中的信息存进文件中*/{ FILE *fp; fp=fopen("student","wb"); while(head!=NULL) { fwrite(head,sizeof(Student),1,fp); head=head->next; } fclose(fp); return 0; } int Add_student() /*添加学生信息函数 */{ Student *p,*q; Student *stud1; char flag="y"; stud1=(Student*)malloc(sizeof(Student)); while(flag=="y"||flag=="Y") { q=p=head; printf("请输入要添加的学生的姓名: "); scanf("%s",stud1->stu_name); printf("请输入要添加的学生的学号(最多8位数): "); scanf("%ld",&stud1->stu_num); printf("请输入要添加的学生的性别: "); scanf("%s",&stud1->stu_sex); printf("请输入要添加的学生的生日: "); scanf("%s",&stud1->Birthday); printf("请输入要添加的学生的年龄: "); scanf("%s",&stud1->age); printf("请输入要添加的学生的平均分: "); scanf("%s",&stud1->Gpa); stud1->next=NULL; fflush(stdin); if(head==NULL)head=stud1; else { while(p->stu_num<stud1->stu_num&&p->next!=NULL) {q=p;p=p->next;} if(p->stu_num>stud1->stu_num) if(p==head){stud1->next=head;head=stud1;} else {q->next=stud1;stud1->next=p;} else p->next=stud1; } stud1=(Student*)malloc(sizeof(Student)); printf("添加结束,是否继续添加,"y"或"Y"继续,否者退出! "); flag=getchar(); fflush(stdin); } free(stud1); system("cls"); return 0; } int del_stu() /*按学号删除学生信息函数*/ { Student *p,*q; long stu_num; char flag="y"; int tage=0; while(flag=="y"||flag=="Y") { p=head; printf(" input the delete student number! "); scanf("%d",&stu_num); if(head==NULL){printf("不存在学生信息! ");return 0;} while(p!=NULL) { if(p->stu_num==stu_num) { tage=1; if(p==head)head=head->next; else q->next=p->next; free(p);break; } q=p;p=p->next; } if(tage==0) printf("要删除的学生信息不存在! "); tage=0; printf("删除结束,是否继续删除操作:y或Y继续,否者结束! "); fflush(stdin); scanf("%c",&flag); } system("cls"); return 0; } int find_student() /*按学号查找学生信息*/{ Student *p; char flag="y"; long stu_num; int tage=0; /*1作为找到学生的标志,0为没有找到*/ while(flag=="y"||flag=="Y") { printf("input the finding student number! "); scanf("%d",&stu_num); p=head; if(head==NULL){printf("不存在学生信息! ");return 0;} else while(p!=NULL) if(p->stu_num==stu_num) { tage=1; printf("你要查找的学生信息如下: "); printf("%s %ld %s %s %s %s ",p->stu_name,p->stu_num,p->stu_sex,p->Birthday,p->age,p->Gpa); break; } else p=p->next; if(tage==0)printf("无该学生信息! "); tage=0; printf("查找结束,是否继续查找操作:y或Y继续,否者退出! "); fflush(stdin); scanf("%c",&flag); } return 0; } int ame_student() /*修改学生信息*/ { Student *p; long stu_num; int tage=0; int chiose; char flag="y"; printf("input the change student number! "); scanf("%ld",&stu_num); p=head; while(flag=="y"||flag=="Y") { if(head==NULL){printf("无学生信息存在! ");return 0;} while(p!=NULL) { if(p->stu_num==stu_num) { tage=1; printf("请选要修改的编号! "); printf("1:<修改姓名> "); printf("2:<修改学号> "); printf("3:<修改性别> "); printf("4:<修改生日> "); printf("5:<修改年龄> "); printf("6:<修改平均分> "); printf("请输入1-6!else非法! "); scanf("%d",&chiose); switch(chiose) { case 1: { char stu_name[15]; printf("请输入修改的名字! "); scanf("%s",stu_name); strcpy(p->stu_name,stu_name); break; } case 2: { long stu_num; printf("请输入修改的学号! "); scanf("%ld",&stu_num); p->stu_num=stu_num; break; } case 3: { char stu_sex[10]; printf("请输入修改的性别! "); scanf("%s",&stu_sex); strcpy(p->stu_sex,stu_sex); break; } case 4: { char stu_college[30]; printf("请输入修改的生日! "); scanf("%s",stu_college); strcpy(p->Birthday,stu_college); break; } case 5: { char stu_profe[30]; printf("请输入修改的年龄! "); scanf("%s",stu_profe); strcpy(p->age,stu_profe); break; } case 6: { char stu_tel[15]; printf("请输入修改的平均分! "); scanf("%s",stu_tel); strcpy(p->Gpa,stu_tel); break; } default: {printf("无此操作! ");break;} }break; } else p=p->next; } if(tage==0)printf("无该学生信息! "); tage=0; printf("修改结束,是否继续修改该学生信息操作:y或Y继续,否者退出! "); fflush(stdin); scanf("%c",&flag); } fflush(stdin); system("cls"); return 0; } int print_student() /*输出学生信息函数*/{ Student *p; p=head; if(head==NULL){printf("无学生信息! ");return 0;} printf("姓名 学号 性别 生日 年龄 平均分 "); printf("=========================================================== "); while(p!=NULL) { printf("%s %ld %s %s %s %s ",p->stu_name,p->stu_num,p->stu_sex,p->Birthday,p->age,p->Gpa); p=p->next; } printf("=========================================================== "); printf("输出结束! "); return 0; } int main() /*主函数*/{ int tage; head=load(); while(1) { printf("44444欢迎进入学生管理系统!44444 "); printf(" 1: 添加学生信息 "); printf(" 2: 删除学生信息 "); printf(" 3: 查找学生信息 "); printf(" 4: 修改学生信息 "); printf(" 5: 输出学生信息 "); printf(" 6: 退出程序 "); printf("4444444444444444444444444444444 "); putchar(10); printf("请输入1-6,其他输入非法! "); scanf("%d",&tage); switch(tage) { case 1:Add_student();break; case 2:del_stu();break; case 3:find_student();break; case 4:ame_student();break; case 5:print_student();break; case 6:save();exit(0);break; default:printf("无此操作 ");break; } } }

c语言为什么things[4][4]=rootbeer[3]是合法的?两个数组都没初始化也没有被赋值

C中重要的是理解指针,还有就是声明与定义变量的区别, 声明是不分配空间,定义是分配了空间 你描述的情况是定义了变量, 所以语法上是合法的。

C语言:语文、数学、英语三科目成绩和总成绩分别用合适的变量?

单纯三个成绩求和,只要定义4个变量,分数如是整数,变量类型就是int,分数有小数,变量类型就是float型。但结合现实情况,三科分数不是独立的,而是和具体某个学生对应的,是一组一组的。所以,把三科成绩定义成数组或结构更好。

请问C语言与C#有什么区别?

这个问题问的好!他俩有什么关系呢。。。茄子和土豆有什么区别。。

c语言程序中任何英语单词均可以作变量名对吗

对。1、变量名必须以字母或下划线开头。2、变量名不能包含空格或其他特殊字符,如@、#、$等。3、变量名不能与C语言中的关键字重复,如if、else、while等。4、变量名区分大小写,例如abc和ABC是两个不同的变量名。

c语言zhong怎样一次定义多个结构体指针变量

用typedef用来对结构体再定义一个类型名这种定义方法定义的结构体,应该这样使用:①structsstr;②tstr;这两种效果是一摸一样的,你可以试试看,希望能帮到你。

c语言编程所用到的全部英语单词?

太多了,兄弟,有while switch for return free if scanf printf gets puts getc putc case define int float double char struct …

C语言的全局变量,正式的官方英语是什么?比如说局部变量叫做local varible 全局变量时什么?

Globalvariables

C语言能不能使用中文变量名啊?

不能

C语言结构体指针的初始化应该怎样理解?

1、structs{charc;inti;};struct*p1;/*p1是指向s结构体的指针*/2、typedefstruct{charc;inti;}s,*ps;s*p2;/*p2是指向结构体的指针*/psp3;/*p3是指向s结构体的指针*/

C语言能不能使用中文变量名啊?

可以使用。合法的变量名由字母,数字和下划线组成组成第一位只能为字母或下划线不能和C语言保留字完全相同。变量就是暂时储存在内存中的一小段信息。变量它的英语是Variable,变量在做形容词用的话是“可变的,易变的”之意,应酬变量就是在程序运行期间其值可以改变的量。在C语言中一个变量有两部分:1、变量的值变量所储存的值,比如5。2、变量的名字是用来标识一个变量的。在C语言中,每一个变量必须要有一个名字。可不能随便取名字,还要遵守一些限制条件。C语言对大小写敏感,所以,hello和Hello是两个不同的变量名。扩展资料1、变量名都以小写字母开头。2、如果变量名有好几个单词组成,那么除了第一个单词的首字母小写之外,其他单词的首字母都大写。

执行C语言程序段“struct s{ long a;char b;};printf("%d",sizeof(struct s));” 输出的结果是什么?说明

structs{inta;//4个字节charb;//1个字节,自动按最大字节数4扩展,增加3个字节floatf;//4个字节}所以结果是12

c语言怎样实现屏幕的白底黑字?

windows下面最简单的办法就是调用:system("color F0");这样就黑底白字了!!!以下是color命令的帮助:设置默认的控制台前景和背景颜色。COLOR [attr] attr 指定控制台输出的颜色属性颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为前景。每个数字可以为以下任何值之一: 0 = 黑色 8 = 灰色 1 = 蓝色 9 = 淡蓝色 2 = 绿色 A = 淡绿色 3 = 浅绿色 B = 淡浅绿色 4 = 红色 C = 淡红色 5 = 紫色 D = 淡紫色 6 = 黄色 E = 淡黄色 7 = 白色 F = 亮白色如果没有给定任何参数,该命令会将颜色还原到 CMD.EXE 启动时的颜色。这个值来自当前控制台窗口、/T 命令行开关或DefaultColor 注册表值。如果用相同的前景和背景颜色来执行 COLOR 命令,COLOR 命令会将 ERRORLEVEL 设置为 1。例如: "COLOR fc" 在亮白色上产生亮红色如果你不想用color来做那么TC 下可以这么做:在开始的时候要调用graphics.h这个头文件 setbackcolor() 设置背景颜色函数功能: 函数setbackcolor()把当前调色板颜色的第一个值改成指定的颜色值,以设置背景颜色。用法: 此函数调用方式为void setbackcolor(int color);说明: 参数color为指定的背景色,其有效值可以是颜色符号名,也可以是色彩值。表1-8列出了背景颜色供选取。表1-8 背景颜色值----------------------------------------------------------------- 颜色符号名 色彩值 颜色符号名 色彩值----------------------------------------------------------------- BLACK(黑色) 0 DARKGRAY(深灰) 8 BLUE(蓝色) 1 LIGHTBLUE(淡蓝) 9 GREEN(绿色) 2 LIGHTGREEN(淡绿) 10 CYAN(青色) 3 LIGHTCYAN(淡青) 11 RED(红色) 4 LIGHTRED(淡红) 12 MAGENTA(品红) 5 LIGHTMAGENTA(粉红) 13 BROWN(棕色) 6 YELLOW(黄色) 14 LIGHTGRAY(淡灰) 7 WHITE(白色) 15----------------------------------------------------------------- 调用该函数,将改变整个屏幕的颜色,如果新的背景色与原来屏幕的图形颜色相同,尽管图形信息不会丢失,但是看不见图形了。如果所选背景色为对比鲜明的颜色,看不见的图形就会重新清晰地显现出来。 这个函数的头文件为graphics.h返回值: 无例: 把背景色置为淡蓝色 setbackcolor(LIGHTBLUE);设置前景色(文字颜色) setcolor() 设置颜色函数功能: 函数setcolor()设置当前绘图颜色(或称做前景色)。用法: 该函数调用方式为voids setcolor(int color);说明: 参数color为选择的当前绘图颜色。在高分辨率显示模式下,选取的color是实际色彩值,也可以用颜色符号名表示。如果已经摇篮函数setpalette()改变了调色板色彩值,那么符号名就不可能产生预期作用了。 在低分辨率显示模式(320X200)下,选取的color是调色板颜色号,不是实际色彩值。 此函数相应的头文件为graphics.h返回值: 无例: 设置16种不同的颜色,显示16段直线:#include<graphics.h>void main(){ int driver,mode; int i; driver=DETECT; mode=0; initgraph(&driver,&mode,""); moveto(0,200); for(i=0;i<16;i++) { setcolor(i); linerel(20,0); } getch(); restorecrtmode();}VC 下面可以用SetConsoleTextAttribute这个Window SDK API

输入实部和虚部,求该复数 C语言

楼上几位光说不写~~~~~~~#includevoidsddf(intx1,inty1,intx2,inty2);voidsubf(intx1,intx2,inty1,inty2);voidmulf(intx1,intx2,inty1,inty2);voidprtf(inta,intb);voidmain(){intx1,y1,x2,y2;printf("输入复数a的实部x1=");scanf("%d",&x1);printf("输入复数a的虚部y1=");scanf("%d",&y1);printf("输入复数b的实部x2=");scanf("%d",&x2);printf("输入复数b的虚部y2=");scanf("%d",&y2);printf(" ");sddf(x1,y1,x2,y2);subf(x1,y1,x2,y2);mulf(x1,y1,x2,y2);}voidprtf(inta,intb)/*输出函数*/{printf("%d",a);printf("+");printf("(%d",b);printf("i) ");}voidsddf(intx1,inty1,intx2,inty2)/*加运算*/{inta,b;a=x1+x2;b=y1+y2;printf("复数之和为:");prtf(a,b);}voidsubf(intx1,intx2,inty1,inty2)/*减运算*/{inta,intb;a=x1-x2;b=y1-y2;printf("复数之差为");prtf(a,b);}voidmulf(intx1,intx2,inty1,inty2)/*乘积运算*/{inta,b;a=x1*x2-y1*y2;b=x1*y2+x2*y1;printf("复数之积为:");prtf(a,b);}

c语言怎样实现运行屏幕的白底黑字

建项目的时候,选择控制台程序就可以了。

c语言怎样实现屏幕的白底黑字?

windows下面最简单的办法就是调用:x0dx0asystem("color F0");x0dx0a这样就黑底白字了!!!x0dx0a以下是color命令的帮助:x0dx0a设置默认的控制台前景和背景颜色。x0dx0ax0dx0aCOLOR [attr]x0dx0ax0dx0a attr 指定控制台输出的颜色属性x0dx0ax0dx0a颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为x0dx0a前景。每个数字可以为以下任何值之一:x0dx0ax0dx0a 0 = 黑色 8 = 灰色x0dx0a 1 = 蓝色 9 = 淡蓝色x0dx0a 2 = 绿色 A = 淡绿色x0dx0a 3 = 浅绿色 B = 淡浅绿色x0dx0a 4 = 红色 C = 淡红色x0dx0a 5 = 紫色 D = 淡紫色x0dx0a 6 = 黄色 E = 淡黄色x0dx0a 7 = 白色 F = 亮白色x0dx0ax0dx0a如果没有给定任何参数,该命令会将颜色还原到 CMD.EXE 启动时x0dx0a的颜色。这个值来自当前控制台窗口、/T 命令行开关或x0dx0aDefaultColor 注册表值。x0dx0ax0dx0a如果用相同的前景和背景颜色来执行 COLOR 命令,COLOR 命令x0dx0a会将 ERRORLEVEL 设置为 1。x0dx0ax0dx0a例如: "COLOR fc" 在亮白色上产生亮红色x0dx0ax0dx0a如果你不想用color来做那么x0dx0ax0dx0aTC 下可以这么做:x0dx0a在开始的时候要调用graphics.h这个头文件x0dx0ax0dx0a setbackcolor() 设置背景颜色函数x0dx0ax0dx0a功能: 函数setbackcolor()把当前调色板颜色的第一个值改成指定的颜色值,以设置背景颜色。x0dx0a用法: 此函数调用方式为void setbackcolor(int color);x0dx0a说明: 参数color为指定的背景色,其有效值可以是颜色符号名,也可以是色彩值。表1-8列出了背景颜色供选取。x0dx0ax0dx0a表1-8 背景颜色值x0dx0a-----------------------------------------------------------------x0dx0a 颜色符号名 色彩值 颜色符号名 色彩值x0dx0a-----------------------------------------------------------------x0dx0a BLACK(黑色) 0 DARKGRAY(深灰) 8x0dx0a BLUE(蓝色) 1 LIGHTBLUE(淡蓝) 9x0dx0a GREEN(绿色) 2 LIGHTGREEN(淡绿) 10x0dx0a CYAN(青色) 3 LIGHTCYAN(淡青) 11x0dx0a RED(红色) 4 LIGHTRED(淡红) 12x0dx0a MAGENTA(品红) 5 LIGHTMAGENTA(粉红) 13x0dx0a BROWN(棕色) 6 YELLOW(黄色) 14x0dx0a LIGHTGRAY(淡灰) 7 WHITE(白色) 15x0dx0a-----------------------------------------------------------------x0dx0a 调用该函数,将改变整个屏幕的颜色,如果新的背景色与原来屏幕的图形颜色相同,尽管图形信息不会丢失,但是看不见图形了。如果所选背景色为对比鲜明的颜色,看不见的图形就会重新清晰地显现出来。x0dx0ax0dx0a 这个函数的头文件为graphics.hx0dx0ax0dx0a返回值: 无x0dx0ax0dx0a例: 把背景色置为淡蓝色x0dx0ax0dx0a setbackcolor(LIGHTBLUE);x0dx0ax0dx0a设置前景色(文字颜色)x0dx0a setcolor() 设置颜色函数x0dx0ax0dx0a功能: 函数setcolor()设置当前绘图颜色(或称做前景色)。x0dx0a用法: 该函数调用方式为voids setcolor(int color);x0dx0a说明: 参数color为选择的当前绘图颜色。在高分辨率显示模式下,选取的color是实际色彩值,也可以用颜色符号名表示。如果已经摇篮函数setpalette()改变了调色板色彩值,那么符号名就不可能产生预期作用了。x0dx0a 在低分辨率显示模式(320X200)下,选取的color是调色板颜色号,不是实际色彩值。x0dx0a 此函数相应的头文件为graphics.hx0dx0a返回值: 无x0dx0ax0dx0a例: 设置16种不同的颜色,显示16段直线:x0dx0ax0dx0a#includex0dx0avoid main()x0dx0a{x0dx0a int driver,mode;x0dx0a int i;x0dx0a driver=DETECT;x0dx0a mode=0;x0dx0a initgraph(&driver,&mode,"");x0dx0a moveto(0,200);x0dx0a for(i=0;i<16;i++)x0dx0a {x0dx0a setcolor(i);x0dx0a linerel(20,0);x0dx0a }x0dx0a getch();x0dx0a restorecrtmode();x0dx0a}x0dx0ax0dx0aVC 下面可以用x0dx0aSetConsoleTextAttribute这个Window SDK API

中分,紧急求个200行左右的C语言源代码!

下面这个程序是我做课程报告的时候写的。你如果也是为了那个的话我那儿还有一份完整的C语言课程实验设计报告。#include<stdio.h>#include <stdlib.h>void main(){void result(int x,int y); /* 声明result函数 */int i,j,num1,num2,r,n=0; /* 定义变量 */char p; randomize(); /* 初始化随机函数发生器 */clrscr(); /* 清屏函数 */printf(" hello,boys and girls.welcome to here! "); /* 打印欢迎词 */for(n=0;n<20;n++)printf("* "); /* 输出20个* */n=0;printf(" please choice :+ , - , * , / "); /* 提示用户输入选择练习类型 */scanf("%c",&p);switch(p) /* 多分支选择语句 */{case "+": /* 选择+的情况 */{printf(" plese enter the times you want to do "); /* 提示用户选择练习次数 */scanf("%d",&i); /* 输入练习次数 */for(j=1;j<=i;j++) /* 控制练习的循环次数 */{num1=random(100);num2=random(100); /* 随机生成两个100以内的数 */printf(" %d+%d= ",num1,num2); /* 打印练习的题目 */scanf("%d",&r); /* 接受用户输入的答案 */if(r==num1+num2) /* 判断答案是否正确 */{printf(" good!your answer is right! Come on baby !!! ");n++;} elseprintf(" sorry,the rignt result is %d ",num1+num2);/* 答案正确,给出提示 */} printf(" the rignt total is %d ",n); /* 答案错误时给出正确答案 */result(n,i); /* 调用函数,输出练习成绩 */} break;case "-": /* 选择-的情况 */{printf(" plese enter the times you want to do "); /* 提示用户选择练习次数 */scanf("%d",&i); /* 输入练习次数 */for(j=1;j<=i;j++) /* 控制练习的循环次数 */{num1=random(20); /* 生成减法运算的数据 */num2=random(50)+num1;printf("%d-%d= ",num2,num1); /* 打印练习的题目 */scanf("%d",&r); /* 接受用户输入的答案 */if(r==num2-num1) /* 判断答案是否正确 */{printf(" good!your answer is right! Come on baby !!! "); /* 答案正确,给出提示 */n++;} elseprintf(" sorry,the rignt result is %d ",num2-num1);} printf(" the rignt total is %d ",n); /* 答案错误时给出正确答案 */result(n,i); /* 调用函数,输出练习成绩 */} break;case "*": /* 选择*的情况 */{printf(" plese enter the times you want to do ");/* 提示用户选择练习次数 */scanf("%d",&i); /* 输入练习次数 */for(j=1;j<=i;j++) /* 控制练习的循环次数 */{num1=random(20);num2=random(20);printf("%d*%d= ",num1,num2); /* 打印练习的题目 */scanf("%d",&r); /* 接受用户输入的答案 */if(r==num1*num2) /* 判断答案是否正确 */{printf(" good!your answer is right! Come on baby !!! "); /* 答案正确,给出提示 */n++;} elseprintf(" sorry,the rignt result is %d ",num1*num2);} printf(" the rignt total is %d ",n); /* 答案错误时给出正确答案 */result(n,i); /* 调用函数,输出练习成绩 */} break;case "/": /* 选择/的情况 */{printf(" plese enter the times you want to do ");/* 提示用户选择练习次数 */scanf("%d",&i); /* 输入练习次数 */for(j=1;j<=i;j++) /* 控制练习的循环次数 */{num1=random(20);num2=random(10)*num1;printf("%d/%d= ",num2,num1); /* 打印练习的题目 */scanf("%d",&r); /* 接受用户输入的答案 */if(r==num2/num1) /* 判断答案是否正确 */{printf(" good!your answer is right! Come on baby !!! ");n++;} elseprintf(" sorry,the rignt result is %d ",num2/num1); /* 答案正确,给出提示 */} printf(" the rignt total is %d ",n); /* 答案错误时给出正确答案 */result(n,i); /* 调用函数,输出练习成绩 */} break;}}void result(int x,int y) /* 定义成绩输出函数 */{float a;int m;a=(float)x/(float)y; /* 将形参转化为float形,并求商 */if(a>=0.8) printf("very good! "); /* a>=0.8输出very good! */ if(a>=0.6&&a<0.8) printf("good! "); /* 0.6<=a<0.8输出good! */ if(a<0.6) printf("oh,come on baby "); /* a<0.6输出oh,come on baby */ for(m=0;m<20;m++) printf("* "); /* 输出* */ }

一个C语言程序

—:我的想法是首先对A数组进行排序,并删除多余的元素,存入一个动态链表表中,因为数组较大,移动很浪费时间。算法如下:struct list{int a;struct list *next }*starA,*starB*p,*q; while(i<N){ if(!starA){strB=new list(A[i]); starA->next=NULL; continue; } q=p=starA; if(p->a<A[i]&&p->next){q=p;p=p->next;} if(!p->next){p->next=new list(A[i]); p->next->next=NULL; continue;} if(p->a==A[i])continue; q->next=new list(A[i]); q->next->next=p;}二:接着就是对B的处理,与A相同;while(i<M){ if(!starB){strB=new list(B[i]); starB->next=NULL; continue; } q=p=starB; if(p->a<B[i]&&p->next){q=p;p=p->next;} if(!p->next){p->next=new list(B[i]); p->next->next=NULL; continue;} if(p->a==B[i])continue; q->next=new list(B[i]); q->next->next=p;}三:对两个排好序的链表,进行差集计算了,采用左右缝缘法: list *p1,*q1; p1=p=starA;q1=q=starB; void left(){ while(p->a<q->a&&p->next) {p1=p;p=p->next;} if(p->a==q->a) {p1->next=p->next; delete p; p=p1->next; } void right(){ while(q->a>p->a&&q->next) { q1=q; q=q->next; delete q1;} }void sufa(){ while(p->next){ right(); left(); } 四:就是将链表复制到表C了 由于时间仓促,算法不严谨,建议各个链表设置一个头结点,算法可以非常简单写出。

c语言实验报告总结怎么写

实验报告总结示例如下:1、此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,俗话说的好,读书破万卷下笔如有神,没有学不会只有不肯学!我坚信,只要下一番功夫就能有理想的收获!2、通过这次实验,让我更加了解到地理信息系统原理与方法的重要性,以及它对我们资源勘查专业发展发挥的重要作用。学习,我觉得结果并不是最重要的,很多结果并不美好。但是学习这个过程是不可少的。当自己把本课程所有的实验做完后,才领悟到老师所说话的含义,要掌握一种新的软件,得随着实践的演练,通过循序渐进的学习,才能更好的掌握它。这次实验,学到的东西很多。3、我认为,在这学期的gis实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这也是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。4、综上所述,经过这次实习,我了解了很多日后工作所需的基本技能,检验了平时所学习的基础知识,对植物营养这门学科有了更深刻的理解,这于我来说无疑是受益匪浅的。我相信,这次实习让我获得的经验、心得会促进我在以后的学习、工作中寻找到合理的方法和正确的方向。最终感激学校为我们供给这样的实习机会。5、这次实验虽然仅有短短的xx天,可是实习资料异常丰富,并且经过这个实习我们都得到了知识上的复习和本事上的提高。正是因为这个实习,加深了我对植物营养学这门学科的了解,同时对我们专业的发展方向有了初步认识。这次实习不但巩固了我们平时所学,也为我们日后的专业工作供给了十分实际的便利。
 首页 上一页  1 2 3 4 5 6 7 8 9  下一页  尾页